我正在制作一个游戏,点击空格键,玩家从左向右移动。再一次在空格键上,玩家将从右向左移动。我已经使用keyevents完成了编码,但它没有工作。
game.prototype.start_handling = function()
{
var that = this;
$(document).on('keydown.game' , function(e)
{
that.key_down(e);
return false;
});
$(document).on('keyup.game' ,function(e)
{
that.key_up(e);
return false;
});
}
game.prototype.key_down = function(e)
{
var code = e.keyCode;
var f1 = true;
var f2 = false;
if(code == 32 && f1 == true)
{
this.player.jump();
this.player.do_move_right = true;
f1 = false;
f2 = true;
}
if(code == 32 && f2 == true)
{
this.player.jump();
this.player.do_move_left = true;
this.player.do_move_right = true;
f1 = true;
f2 = false;
}
}
game.prototype.key_up = function(e)
{
var code = e.keyCode;
var f1 = true;
var f2 = false;
if(code == 32 && f1 == true)
{
this.player.jump();
this.player.do_move_right = true;
f1 = false;
f2 = true;
}
if(code == 32 && f2 == true)
{
this.player.jump();
this.player.do_move_left = true;
this.player.do_move_right = true;
f1 = true;
f2 = false;
}
}
伙计们我已经改变它并应用......但它仍然不起作用。我希望玩家在点击空间时从左向右移动然后停止然后再点击空间,玩家将从右向左移动。
答案 0 :(得分:0)
你要检查两次相同的情况..
var code = e.keyCode;
if (code == 32) {
if(!this.player.do_move_right) {
this.player.jump();
this.player.do_move_right = true;
} else {
this.player.jump();
this.player.do_move_right = false;
}
}
答案 1 :(得分:-1)
你是否添加了这样的监听器< body onkeyup =" myfunction()">
function myfunction(){
var code = window.event.keyCode;
// your code
}