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>
-создание игрового поля и поля для счота. По игровому полю с переменной скоростю движетса квадрат. При подходе к границе поля квадрат изменяет свое направление. Єсть 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>