Ich benutze die Tastendruck-Event-Listener in vielen Animationen in der Verarbeitung js und hier ist ein Problem, das mich konsequent plagt. In diesem Beispiel habe ich gemacht, wenn ich den "d" Knopf drücke, bewegt sich ein Ball nach rechts. Tatsächlich ist der Ball stationär und der Boden bewegt sich nach links. Das Problem ist folgendes: Wenn ich 'd' drücke, wird der Ball fast augenblicklich mit der richtigen Geschwindigkeit geschleudert, hält dann aber einen Moment an, dann erreicht er die richtige Geschwindigkeit und fährt dann mit dieser Geschwindigkeit so lange fort wie ich 'd' halte. Ich weiß nicht, warum der Ball diese Geschwindigkeit nicht erreicht und dort bleibt, aber genau das würde ich gerne tun.Tastendruck Event Listener inkonsistente Bewegung in processing.js produzieren
Hier ist eine Geige, die zeigen kann, was ich meine:
https://jsfiddle.net/4s14wq4d/
Das Verfahren ist ganz einfach:
hill.prototype.moveRight = function() {
this.x -= 5;
};
Und hier ist der Ereignis-Listener in Aktion:
var myCanvas = document.getElementById("myCanvas");
myCanvas.addEventListener("keypress", functionMove);
function functionMove(e) {
if (e.keyCode == "100") {
for (var i = 0; i < hillArray.length; i++) {
hillArray[i].moveRight();
}
}
};
Vielleicht möchten Sie mit keyup arbeiten und stattdessen werfen Sie einen Blick auf diese keyDown: https://stackoverflow.com/questions/14448981/remove-keydown-delay-in-javascript https://stackoverflow.com/questions/39952551/javascript-motion-on-key-hold – Cynigo
Ich bin mir nicht sicher, warum die Verwendung von 'keyup' und 'keydown' dieses Ding nicht reagiert – Jozurcrunch