Ich mache ein Spiel mit der HTML5-Leinwand, wo der Spieler einen Windhund kontrollieren muss, um Hühnchen vom Himmel fallen zu fangen. Der Code funktioniert mit den Pfeiltasten, aber ich versuche Touch-Events hinzuzufügen. Wenn der Spieler links vom Windhund klopft und hält, bewegen Sie sich nach links. Rechts vom Windhund, bewege dich nach rechts. Mein aktueller Code ist wie folgt:Touch Event in Javascript Scheinbar zufällig?
document.body.addEventListener("touchstart", function(e) {
if (e.changedTouches[0].pageX > greyhound.speedX) {
greyhound.speedX -= 10;
greyhound.speedY = innerHeight - 100;
} else {
greyhound.speedX += 1;
greyhound.speedY = innerHeight - 100;
};
greyhound.newPos();
}, false);
}
Dies erzeugt scheinbar zufällige Ergebnisse, unabhängig davon, wo ich tippen. Außerdem bewegt es sich nicht weiter, während ich meinen Finger auf dem Bildschirm halte. Jede Hilfe oder Kritik ist willkommen. Vielen Dank!
Hinweis: Ich versuche, dies funktioniert nur mit einem Tippen zuerst, dann machen es funktioniert für berühren und halten.
Ich hätte klarer sein sollen; das ist was ich tue. Mit nur einer Berührung arbeiten lassen und dann berühren und halten. –
Es scheint, dass Sie die Position der Berührung mit der Geschwindigkeit des Busses vergleichen. Möchten Sie nicht zuerst feststellen, ob sie links oder rechts vom Bus geklickt haben? – clint
mein Fehler, ich sollte meinen Code wirklich kommentieren! Geschwindigkeit ist Position, letztes Mal habe ich überprüft ... x = speedX ist was die newPos() Funktion deklariert. –