Показать сообщение отдельно
  #8 (permalink)  
Старый 15.07.2013, 23:07
Аватар для Seva Pletnev
Аспирант
Отправить личное сообщение для Seva Pletnev Посмотреть профиль Найти все сообщения от Seva Pletnev
 
Регистрация: 06.05.2013
Сообщений: 42

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;}


платформер)))
Ответить с цитированием