c= document.getElementById('c');g= c.getContext('2d'); //получаем контекст отрисовки 2d
x=0; y=490; //координаты платформы
xq=250; yq=100; xw=100; yw=480; //координаты игрока и моба
gravi=2; //гравитация
gamp=20; // сила прыжка
speed=0; //скорость падения
time=30; //время интервала перерисовки
live=100; //жизни игрока
Mobi=0; //переменная бегающая по массиву Mobprid
Mobprid=[4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3]; //массив содержащий индесы направлений для моба
setInterval(riswin,30); //функция перерисовки экрана
function riswin(){ //функция отрисовки игрока,платформы,моба ифона
g.clearRect(0,0,500,500); //очищаем экран
g.fillStyle="#000000";
g.fillRect(0,0,500,500); //рисуем фон
g.fillStyle="#00ff00";
g.fillRect(x,y,500,10); //рисуем платформу зеленого цвета
graviPlayer(); //вызываемфункцию игрока
scrMob();
prin();
}
function graviPlayer(){ //функция управления игроком
if(key==39) {xq+=5;} //сдвиг вправо
if(key==37) {xq-=5;} //сдвиг влево
if(yq==480){if(key==38) {speed-=gamp;}} // еслиигрок на землеи нажата клавиша вверх, то от скорости отнять силу прыжка
yq+=speed; // прибавляем к Y игрока скорость (реализуется падение)
if(yq!=480) {speed+=gravi; } // если игрок не на земле то к скорости прибавляем гравитацию каждый шаг (реализуется ускарение свободного падения)
if(yq==480){speed=0;} //если игрок на земле, мы обнуляем скорость
g.fillStyle="#0000ff";
g.fillRect(xq,yq,10,10); // рисуем игрока
if(xq>500) {xq=0;}
if(xq<0) {xq=490}
}
function scrMob() { //функция навигации моба
g.fillStyle="#ff0000";
g.fillRect(xw,yw,10,10); //рисуем моба
i=Mobprid[Mobi];
Mobi++;
if(Mobi>=Mobprid.length) {Mobi=0;} //вытаскиваем индексы направлений из массива Mobprid и задаем путь
switch(i){
case 1: yw-=5;
break;
case 2: yw+=5;
break;
case 3: xw-=5;
break;
case 4: xw+=5;
break;
}
}
function prin(){ //функция отрисовки системного теста
g.strokeStyle = "#F00";
g.font = 'bold 30px sans-serif';
g.strokeText("speed: "+speed, 10, 30); //рисуем скорость
g.strokeText("x: "+xq, 200, 30); //отрисовываем координаты игрока
g.strokeText("y: "+yq, 300, 30);
g.strokeText("key: "+key, 400, 30); //рисуем нажатую клавишу
g.strokeText("live: "+live, 10, 70); //рисуем жизни
if(live!=0){if(speed>20) {live-=5;}
if(xq==xw&&yq==yw) {live-=5;}} //отнимаем жизни если игрок привышает скорость или сталкивается с мобом
if(live==0) { g.strokeText("=game over=", 170, 250); } // конец игры если нет жизней
}
document.onkeydown = keyDn; document.onkeyup = keyUp; key=0; //сохраняем в key значение клавиши и послеее отпуска обнуляем
function keyDn(e) {key = e.which;}
function keyUp(e) {key = 0;}
платформер)))