Javascript 在p5.js中来回移动rect时停止延迟
我正在写一个游戏,我遇到了一个小问题。我正在使用按键功能,当我向左移动时,我突然快速地开始向右移动,我的矩形刚好停止(反之亦然)。在我的比赛中会有闪避,所以尽快改变方向是很重要的。我该怎么办Javascript 在p5.js中来回移动rect时停止延迟,javascript,html,web,p5.js,Javascript,Html,Web,P5.js,我正在写一个游戏,我遇到了一个小问题。我正在使用按键功能,当我向左移动时,我突然快速地开始向右移动,我的矩形刚好停止(反之亦然)。在我的比赛中会有闪避,所以尽快改变方向是很重要的。我该怎么办 //main file, sketch.js: var person; function setup() { createCanvas(380, 720); person = new Person(); } function draw() { background(64,
//main file, sketch.js:
var person;
function setup() {
createCanvas(380, 720);
person = new Person();
}
function draw() {
background(64, 64, 64);
person.show();
person.move();
}
function keyReleased() {
if (keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW) {
person.setDirX(0);
}
}
function keyPressed() {
if (keyCode === RIGHT_ARROW) {
person.setDirX(1)
}
else if (keyCode === LEFT_ARROW) {
person.setDirX(-1);
}
}
//person(rectangle) file, person.js:
function Person() {
this.x = width/2;
this.y = height - 20;
this.xdir = 0;
this.ydir = -0.25;
this.show = function() {
noStroke();
fill(250);
rectMode(CENTER);
rect(this.x, this.y, 25, 25);
}
this.setDirX = function(dir) {
this.xdir = dir;
}
this.move = function(dir) {
this.x += this.xdir * 5;
this.y += this.ydir;
}
}
试着想象一下,当你快速地从按住左键转到按住右键时,你正在按下和释放什么键。这就是你正在做的:
- 先按住左键
- 然后你按住右边。所以在一瞬间,你按住了两个键
- 然后你放开左边,但继续按住右边
keyPressed()
和keyreased()
函数中设置这些布尔值,并在draw()
函数中检查这些布尔值
无耻的自我推销:我写了一篇关于使用这种方法的教程。请参阅标题为“处理多个键”的部分。本教程是关于处理的,但同样的想法也适用于P5.js。试着想想,当你快速从按住左键转到按住右键时,你正在按下和释放哪些键。这就是你正在做的:
- 先按住左键
- 然后你按住右边。所以在一瞬间,你按住了两个键
- 然后你放开左边,但继续按住右边
keyPressed()
和keyreased()
函数中设置这些布尔值,并在draw()
函数中检查这些布尔值
无耻的自我推销:我写了一篇关于使用这种方法的教程。请参阅标题为“处理多个键”的部分。本教程用于处理,但同样的思想也适用于P5.js