Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - помогите найти ошибку в javascript вроде всьо норм но не роботает.

Ответить
Настройки темы
Разное - помогите найти ошибку в javascript вроде всьо норм но не роботает.

Новый участник


Сообщения: 45
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Помогите найти ошибку в 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>

-------
В благодарносте за помощь нажимаем на ссылочку "Полезное сообщение " ®


Отправлено: 23:50, 03-03-2014

 

Аватара для Sp01LeR

Пользователь


Сообщения: 60
Благодарности: 13

Профиль | Отправить PM | Цитировать


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

HTML код: Выделить весь код
<!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>


Отправлено: 17:29, 06-03-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - помогите найти ошибку в javascript вроде всьо норм но не роботает.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Помогите найти ошибку кэп Программирование и базы данных 3 06-11-2012 09:16
[решено] Компьютер не включается с первого раза, но после повторного запуска работает норм MainRead Непонятные проблемы с Железом 13 16-02-2012 04:46
помогите кто чем может(здесь искал но вроде не нашел) Brains Тест-форум 0 27-06-2011 21:29
помогите найти ошибку igor7 Программирование в *nix 1 07-02-2011 09:55
JavaScript, не могу найти ошибку modem Вебмастеру 3 01-03-2005 15:08




 
Переход