2016-04-13 2 views
-1

Я построил сороконожку в javascript из учебника Академии Хан. Затем я понял, как поместить его в веб-браузер. однако нажатие клавиш не работает. Я попытался изменить значения keyCode и изменить некоторые определения функций на «void», но ничего не сработало. Приложение использует обработку .js для работы. Вот раздел Дж.С. дело с ключами:javascript Многоножка, нажатие клавиши не работает

var Player = function(x,y,size,speed){ 
    this.x = x; 
    this.y = y; 
    this.size = size; 
    this.speed = speed; 

    this.update = function(){ 
     if(keys[LEFT]){ 
     this.x -= this.speed; 
     } 
     if(keys[RIGHT]){ 
     this.x += this.speed; 
     } 
     if(keys[DOWN]){ 
     this.y += this.speed; 
     } 
     if(keys[UP]){ 
     this.y -= this.speed; 
     } 
     if(keys[76] && bulletDelay < 0){ 
     var b = new Bullet(this.x, this.y, 5,5); 
     bullets.push(b); 
     bulletDelay = 40; 
     } 


     if (this.x < 0){ 
     this.x = 0; 
     } 
     if (this.x > width){ 
     this.x = width; 
     } 
     if (this.y > 800){ 
     this.y = 800; 
     } 

    //This adjusts the max height the player can move up on y-axis. Adjust to make more like Atari version 
    if (this.y < 100) { 
    this.y = 100; 
    } 

    noStroke(); 
    fill(0,255,0); 
    ellipse(this.x, this.y, this.size, this.size); 
}; 
}; 
+0

что говорит консоль разработчика браузера? Сообщает ли он о любых ошибках JS? – Steve

+0

Ошибок не отображено – bamabacho

+0

Не могли бы вы высказать больше кода или ссылки на него? – Eugene

ответ

-1

Синтаксис

if(keys[LEFT]) 

должен быть

if(keyCode == LEFT) 

См Processing.js keyCode reference и key

EDIT 1: Для специального (стрелка, пробел), вы должны использовать keyCode вместо key.

+0

Боюсь, что это не сработало. – bamabacho

-1

Я разобрался. Функции Keypress и keyRelease должны быть изменены с

var keyPressed = function(){ 

в

void keyPressed() . . . 

аналогично для keyReleased функции

Смежные вопросы