ЖУРНАЛ ХАКЕР

Гама на JavaScript прямо в онлайне

Спецвыпуск хакер, номер #002, стр. 002-060-5


{

objectdy=-objectdy; // Мяч отражается

score++; // Очки возрастают

}

if (objectdx<0 && (racketpos*2-1==objectx || racketpos*2==objectx ||racketpos*2+1==objectx))

// Аналогично: если мяч движется влево и находится в зоне ракетки

{

objectdy=-objectdy; // Мяч отражается

score++; // Очки возрастают

}

deltascore++; // Количество отскоков увеличилось на единицу

if (deltascore==5){ // Если мяч отскочил уже 5 раз, ускорим игру!

deltascore=0; // Сбросили счетчик отскоков на ноль

waitdelay=waitdelay*0.75; // Уменьшили задержку, т.е. ускорили на 25%

}

if (errorflag!=1)scoreboard.value="Score: "+score; // Вывели очки в табло, если все ОК

} // Конец блока if, проверявшего, находится ли мяч на последней горизонтали

// Теперь три легких случая - мяч у трех стенок:

if (objecty<2) objectdy=-objectdy; // Мяч у верхней стенки, меняем направление

if (objectx>29)objectdx=-objectdx; // Мяч у правой стенки, меняем направление

if (objectx<2) objectdx=-objectdx; // Мяч у левой стенки, меняем направление

// Осуществляем движение:

objectx+=objectdx; // Двигаем объект по X

objecty+=objectdy; // Двигаем объект по Y

if (objecty>19) errorflag=1; // Ошибка! Мяч не был вовремя отражен!

} // Конец тела функции

Вот, собственно, и все! Теперь тебе остается со спокойным сердцем закрыть тэг <SCRIPT> и создать внутри <BODY> с помощью стандартных тэгов кнопочку Start Game (onclick=newgame()), форму (name=battleForm) и внутри ее TEXTAREA размером 30 на 20 (name=battleTA cols=30 rows=20). Не забудь про табло <INPUT name=scoreboard>, и твоя первая игра полностью готова!

Напоследок хочу привести код полного HTML-файла со всем необходимым и пожелать тебе новых игр на JavaScript!

Листинг финального файла squash.htm:

<!- Между этих строк расположены комментарии для HTML

Cтандартный заголовок

-->

<HTML>

<HEAD>

<TITLE>Squash!</TITLE>

</HEAD>

<!-

Собственно, главный JS-сценарий

//-->

<SCRIPT LANGUAGE=javascript>

<!--

var fieldx=1; // X-координата игрового поля

var fieldy=1; // Y-координата игрового поля

var objectx=2; // X-координата мячика

var objectdx=1; // Смещение мячика по оси X

var objecty=2; // Y-координата мячика

var objectdy=1; // Смещение мячика по оси Y

var racketpos=7; // Положение ракетки

var errorflag=0; // Если 0, то все ОК. Единица, если мяч вовремя не отбит

var score=0; // Набранные очки

var deltascore=1; // Количество отскоков

var waitdelay=200; // Задержка в миллисекундах между движениями мячика (скорость игры)

var onflag=0; // Если 0, то игра не начата. Единица, если уже идет

var printscreen; // Главная переменная вывода

function newgame(){ // Объявляем функцию newgame без аргументов

if(onflag==0){ // Т.е. если игра не начата, то...

errorflag=0; // Сбрасываем в значение по умолчанию

score=0; // Очевидно, что очков пока нет

objectx=objecty=2; // Задаем начальные координаты для мяча

fieldx=fieldy=1; // Задаем начальные координаты для поля

Назад на стр. 002-060-4  Содержание  Вперед на стр. 002-060-6