Gast345678: Touchscreen events

Hallo,
ich habe zwei eventListener, die die Bedienung eines Spiels via Touchscreen ermöglichen sollen.
Leider funktionieren diese nur sehr mangelhaft.
Hier ist mein Code:

  
document.getElementById("game").addEventListener("touchstart", function (e) {  
    'use strict';  
    var x = e.pageX - document.getElementById("game").offsetLeft, y = e.pageY - document.getElementById("game").offsetTop;  
    if (game.status === "play") {  
        if (x > 0 && x <= 800 && y > 0 && y <= 600 && key.space === false) {  
            key.space = true;  
        } else if (x > 0 && x <= 400 && y > 0 && y <= 600) {  
            key.left = true;  
        } else if (x > 400 && x <= 800 && y > 0 && y <= 600) {  
            key.right = true;  
        }  
    }  
}, false);  
  
document.getElementById("game").addEventListener("touchend", function (e) {  
    'use strict';  
    var x = e.pageX - document.getElementById("game").offsetLeft, y = e.pageY - document.getElementById("game").offsetTop;  
    if (game.status === "play") {  
        if (x > 0 && x <= 400 && y > 0 && y <= 600) {  
            key.left = false;  
        } else if (x > 400 && x <= 800 && y > 0 && y <= 600) {  
            key.right = false;  
        }  
    }  
}, false);  

Wo liegt der Fehler?
Das Spiel soll starten, wenn key.space = true ist.
Die Spielfigur soll nach rechts gehen, wenn key.right = true ist und nach links gehen wenn key.left = true ist.

  1. Meine Herren,

    Leider funktionieren diese nur sehr mangelhaft.
    Wo liegt der Fehler?

    Schwierig zu sagen ohne Fehlerbeschreibung.

    Das Spiel soll starten, wenn key.space = true ist.
    Die Spielfigur soll nach rechts gehen, wenn key.right = true ist und nach links gehen wenn key.left = true ist.

    Du verschweigst scheinbar einen ziemlich wichtigen Teil an Code. In dem Code, den du gepostet hast, steht nur drin, wie du ermittels, welcher Knopf gedrückt wird.

    Btw: Eine Funktion isPointInRect() würde deinem Code gut stehen.

    1. Wo liegt der Fehler?

      Der Fehler ist, dass die Spielfigur einmal in die Richtung geht in die sie gehen soll und dann nicht mehr.

      Du verschweigst scheinbar einen ziemlich wichtigen Teil an Code. In dem Code, den du gepostet hast, steht nur drin, wie du ermittels, welcher Knopf gedrückt wird.

      nein, das machen folgende Funktionen:

        
      function keydown(e) {  
          'use strict';  
          var key_id = e.keyCode || e.which;  
          if (key_id === 32) {  
              key.space = true;  
          } else if (key_id === 37) {  
              key.left = true;  
              e.preventDefault();  
          } else if (key_id === 39) {  
              key.right = true;  
              e.preventDefault();  
          }  
      }  
        
      document.addEventListener("keydown", keydown, false);  
        
      function keyup(e) {  
          'use strict';  
          var key_id = e.keyCode || e.which;  
          if (key_id === 37) {  
              key.left = false;  
              e.preventDefault();  
          } else if (key_id === 39) {  
              key.right = false;  
              e.preventDefault();  
          }  
      }  
        
      document.addEventListener("keyup", keyup, false);  
      
      

      Die Funktionen funktionieren auch einwandfrei. Für Touchscreens sind die zuvor geposteten Funktionen, da die keine Tastatur haben. Die zuvor geposteten Funktionen sollen nur das machen, was mit den entsprechenden Knöpfen gemacht wird.