JavaScript Touchevents dauerhaft abfeueren

RauchenderDachs

Cadet 4th Year
Registriert
Dez. 2012
Beiträge
70
Hi Leute,

ich habe eine kleine WebApp in JS und HTML5 geschrieben. Allerdings hab ich noch ein paar Probleme mit der Steuerung über die Touchgestik.
Bei der Webapp handelt sich um einen schlechten SpaceInvader ableger.
Das Raumschiff soll nur nach oben und unten gestuert werden, dabei fleigen Aliens auf einen zu die man abschießen sollte.
Für die Stuerung hab ich 3 Divs erstellt, eins zum Schießen, eins zum Steigen und eins zum Sinken. Berührt man nun eins dieser Divs mit dem Finger so wird auch die gewollte Aktion ausgeführt.
Hier mal der Code im JS
Code:
function touch(e){
        var touchobj = e.changedTouches[0];
        var target = touchobj.target.id;//hier steht die ID des berührten DOM's Objectes drin
        console.log(target);
        if(target =="shoot"){
            for (var n = 0; n < bulletlength; n++) {
                        if (bullet[n] == null) {
                            bullet[n] = new Object();
                            bullet[n].x = player.x+152;
                            bullet[n].y = player.y+25;
                            break;
                        }   
            }
        }
        if(target =="movedown"){
            player.movedown();
        }
        if(target =="moveup"){
            player.moveup();
        }

Der Code funktioniert eigentlich wunderbar nur sollte wenn man den Finger auf das "hoch" oder "runter" div legt der Spieler solange hoch steigen bzw runter fallen bis man den Finger wieder weg nimmt. Wäre schön wenn mir jemand ein Denkanstoß geben könnte wie ich das Problem lösen könnte.

Grüße RauchenderDachs
 
mit den events also immer wenn das Event ausgelöst wird sollte player.moveup() einmal ausgeführt werden.
 
Die Aliens werden erst auf einer zufälligen Höhe erschaffen. Danach bewegen sie sich jedes Frame ein Pixel nach Links also auf den Spieler zu.
 
Also hast du einen gameloop, in diesen solltest du abfragen ob eines der Steuerelemente gedrückt wurde und nicht aufs Event
 
Außerdem sollte jedes Event eine eigene Funktion spendiert bekommen.
Eine Funktion = 1 Aufgabe
 
Danke für die Antworten hab's jetzt mit dem Gameloop gemacht. Einfach ne Variable die sich setzt bzw löscht und im loop dann abgefragt. Das mit den Funktionen und den ganzen Code muss ich sowieso noch "hübscher" machen.

MFG
RauchenderDachs
 
Zurück
Oben