我正在尝试创建游戏。我想通过按键来改变播放器的方向。
function keyPressed() {
if (keyCode === UP_ARROW) {
s.dir(0, -1);
} else if (keyCode === DOWN_ARROW) {
s.dir(0, 1);
} else if (keyCode === RIGHT_ARROW) {
s.dir(1, 0);
} else if (keyCode === LEFT_ARROW) {
s.dir(-1, 0);
}
}
当我按2个键的速度太快时。我得到这些输出:
按下1 0 0 1
按下0 1 -1 0
但是在第二次调用中,似乎无法注册输入x为-1。因此,方向不变。
this.dir = function(x, y) {
console.log("pressed", this.xspeed, this.yspeed, x, y)
if (y === -1) { // up
if (this.y - scl != this.tail[this.tail.length-1].y) {
this.xspeed = x;
this.yspeed = y;
}
}
if (y === 1) { // Down
if (this.y + scl != this.tail[this.tail.length-1].y) {
this.xspeed = x;
this.yspeed = y;
}
}
if (x === -1) { // Left
if (this.x - scl != this.tail[this.tail.length-1].x) {
this.xspeed = x;
this.yspeed = y;
}
}
if (x === 1) { // Right
if (this.x + scl != this.tail[this.tail.length-1].x) {
this.xspeed = x;
this.yspeed = y;
}
}
}
答案 0 :(得分:0)
我“解决”了它。 我误解了什么对我没有用。
`if (this.x - scl != this.tail[this.tail.length-1].x) {`
如果这行弄乱了我的代码,这是。一切都按预期进行。
不能删除问题,感谢您的快速解答