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

Ответить
Аватара пользователя
oleh19

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

Сообщение oleh19 »

Помогите найти ошибку в JavaScript. Задум кода токой:

-создание игрового поля и поля для счота. По игровому полю с переменной скоростю движетса квадрат. При подходе к границе поля квадрат изменяет свое направление. Єсть 2 счотчики, которие сроботивают при попадании и при непопадинии по квадрату.



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



Помогите пожалуста.


Цитата:



Злови мене!

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))
Аватара пользователя
Sp01LeR

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

Сообщение Sp01LeR »

Да там просто несколько ошибок в коде(в одном месте лишняя скобка и в другом незакрытая для условия 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>



Изображение
Ответить

Вернуться в «Программирование и базы данных»