Войти

Показать полную графическую версию : помогите найти ошибку в javascript вроде всьо норм но не роботает.


oleh19
03-03-2014, 23:50
Помогите найти ошибку в JavaScript. Задум кода токой:
-создание игрового поля и поля для счота. По игровому полю с переменной скоростю движетса квадрат. При подходе к границе поля квадрат изменяет свое направление. Єсть 2 счотчики, которие сроботивают при попадании и при непопадинии по квадрату.

Я предпологаю што ошибка кода состоит гдето в функции move(), так как сам квадрат и игровое поле есть, но квадрат недвижетса.

Помогите пожалуста.
<html> <head> <title>Злови мене!</title> <script>
var vx;//Швидкість по горизонталі
var vy;//Швидкість оп вертикалі
var flag;//Флаг попадання ціль
//Функція інсцилізацазії
function init(){
flag=false;//Збій флага
lay.style.backgroundColor="red";//Назначаю червоний колір квадрату
//Задаємо випадкові координати квадрату в межах ігрового поля
lay.style.top=Math.round((Math.random()*500));//Задали випадковий координат
lay.style.left=Math.round((Math.random()*750));//Задали випадковий координат
//Задаєм випадкове значення і швидкість квадратів
vx=Math.round((Math.random()*10))-5;//Швидкість квадрату по Х
vy=Math.round((Math.random()*10))-5;//Швидкість квадрату по У
move();//Запуск першого прцесу
}
//Функція, реалізуюча переміщеню квадрату
function move(){
//Якщо флаг встановлений то екземплятор функції непотрібен
if (flag==true){return}
//Переміщення квадрата на задані координати
var x=lay.style.left;
var y=lay.style.top;
//Зміна швидкості з 20% ймовірністю
if (Math.round((Math.random()*1000))<10{
vx=Math.round((Math.random()*10))-5;
vy=Math.round((Math.random()*10))-5;
}
//Зміна координат
x=parseInt(x)+vx;
y=parseInt(y)+vy;
//Перевірка на зустріч з границями гри
//Якщо координати Х переходять до межі 0 то вони міняють свій рух в протилежну сторону
if (x<=0){
x=0;
vx=-vx;
}
//Якщо координати Х перевищують 750 то вони міняють свій рух в протилежну сторону
if(x>=750){
x=750;
vx=-vx;
}
//Якщо координа У менші за 0 то вони міняють свій рух в протилежну сторону
if(y<=0){
y=0;
vy=-vy;
}
//Якщо координати У перевищують 500 то вони міняють свій рух в протилежну сторону
if(y>=500);
y=500;
vy=-vy;
}
//Назаначаємо нові координати точок
lay.style.left=x;
lay.style.top=y;
//Викликаємо данну функцію "move()"через 30 мс.
setTimeout("move();",30);
}
//Функція реагуюча на попадання
function vis(){
document.forms[0].Yes.value++;//Збільшення счотчика попадань
flag=true;//зупинка гри (move())
lay.style.backgroundColor="yellow";//Змінюємо колір квадрату
setTimeout("init();",400);//Запуск гри через 2с. (move())
} </script> </head> <body onload=init()> <!-- Ігрове поле -->
<div id=field style="position:absolute; top:0px;left:0px;
height:550px;width:850px; background-color:yellow;"
onClick='javasript:document.forms[0].No.value++;'>
</div>
<!-- Слой з квадратом -->
<div id=lay style="position:absolute; top:50px;left:50px;
height:50px;width:50px; background-color:red;" onClick='vis()'>
</div>
<!-- Поле для счота -->
<div id=control style="position:absolute; top:0px;left:850px;
height:550px;width:200px; background-color:green;">
<form>
<h2>Счот</h2>
Попав: <br>
<input id="Yes"> <br>
Мимо:<br><input id="No">
</form>
</div> </body> </html>

Sp01LeR
06-03-2014, 17:29
Да там просто несколько ошибок в коде(в одном месте лишняя скобка и в другом незакрытая для условия if) - для веб-кодинга ведь сейчас даже в "ослинятине" достаточно мощный отладчик запилили - показывает сразу на какой строке ошибка. Хотя может вы назло всем код JS пишете в простом блокноте и тестируете в старых браузерах под Икспихой ??


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Злови мене!</title>

<script>
var vx;//Швидкість по горизонталі
var vy;//Швидкість оп вертикалі
var flag;//Флаг попадання ціль
//Функція інсцилізацазії
function init() {
flag=false;//Збій флага
lay.style.backgroundColor="red";//Назначаю червоний колір квадрату
//Задаємо випадкові координати квадрату в межах ігрового поля
lay.style.top=Math.round((Math.random()*500));//Задали випадковий координат
lay.style.left=Math.round((Math.random()*750));//Задали випадковий координат
//Задаєм випадкове значення і швидкість квадратів
vx=Math.round((Math.random()*10))-5;//Швидкість квадрату по Х
vy=Math.round((Math.random()*10))-5;//Швидкість квадрату по У
move();//Запуск першого прцесу
}
//Функція, реалізуюча переміщеню квадрату
function move(){
//Якщо флаг встановлений то екземплятор функції непотрібен
if (flag==true) {return;}
//Переміщення квадрата на задані координати
var x=lay.style.left;
var y=lay.style.top;
//Зміна швидкості з 20% ймовірністю
if (Math.round((Math.random()*1000)) < 10) {
vx=Math.round((Math.random()*10))-5;
vy=Math.round((Math.random()*10))-5;
}
//Зміна координат
x=parseInt(x)+vx;
y=parseInt(y)+vy;
//Перевірка на зустріч з границями гри
//Якщо координати Х переходять до межі 0 то вони міняють свій рух в протилежну сторону
if (x<=0){
x=0;
vx=-vx;
}
//Якщо координати Х перевищують 750 то вони міняють свій рух в протилежну сторону
if(x>=750){
x=750;
vx=-vx;
}
//Якщо координа У менші за 0 то вони міняють свій рух в протилежну сторону
if(y<=0){
y=0;
vy=-vy;
}
//Якщо координати У перевищують 500 то вони міняють свій рух в протилежну сторону
if(y>=500);
y=500;
vy=-vy;
//Назаначаємо нові координати точок
lay.style.left=x;
lay.style.top=y;
//Викликаємо данну функцію "move()"через 30 мс.
setTimeout("move();",30);
}
//Функція реагуюча на попадання
function vis(){
document.forms[0].Yes.value++;//Збільшення счотчика попадань
flag=true;//зупинка гри (move())
lay.style.backgroundColor="yellow";//Змінюємо колір квадрату
setTimeout("init();",400);//Запуск гри через 2с. (move())
}
</script> </head>

<body onload="init();">
<!-- Ігрове поле -->
<div id=field style="position:absolute; top:0px;left:0px;
height:550px;width:850px; background-color:yellow;"
onClick='javasript:document.forms[0].No.value++;'>
</div>
<!-- Слой з квадратом -->
<div id=lay style="position:absolute; top:50px;left:50px;
height:50px;width:50px; background-color:red;" onClick='vis()'>
</div>
<!-- Поле для счота -->
<div id=control style="position:absolute; top:0px;left:850px;
height:550px;width:200px; background-color:green;">
<form>
<h2>Счот</h2>
Попав: <br>
<input id="Yes">
<br>
Мимо:<br><input id="No">
</form>
</div>
</body></html>


http://n70me.host.sk/simg.php




© OSzone.net 2001-2012