Java Script: 2 Tasten gleichzeitig abfragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Java Script: 2 Tasten gleichzeitig abfragen

    Hey Leute,

    ich bin gerade dabei ein Java-Script Spiel ein bisschen umzuscripten um ein bisschen Praxis zu lernen.
    Es handelt sich dabei um das bekannte Spiel "Pong".

    Ich bin jetzt soweit, dass ich einen zweiten Balken, sprich einen zweiten Spieler eingebaut habe, der sich auch über die Tasten "a" und "d" bewegen lässt.
    Mein Problem liegt darin, dass ich es nicht schaffe, dass beide Balken gleichzeitig bewegt werden können, sondern immer nur einer alleine. Also ich kann Balken 1 bewegen, aber sobald ich dann Balken 2 bewege, bleibt Balken 1 stehen. Und umgekehrt.

    Hier seht ihr, wie ich die beiden Funktionen aufrufe:

    Quellcode

    1. if(addEventListener){
    2. document.onkeypress = movePlayer2;
    3. function move () {
    4. document.addEventListener("keydown", movePlayer1, false);
    5. document.addEventListener("keydown", movePlayer2, false);
    6. }
    7. window.addEventListener("keydown", movePaddle, false);
    8. }


    Da die beiden Funktionen an sich einwandfrei funktionieren, kann der Fehler nur beim Aufrufen liegen.

    Ich bin am verzweifeln mit dem Problem und wäre sehr dankbar für eure Hilfe :)
  • Ich habe den Code jetzt so gut wie möglich an deine Funktionen movePlayer1 und 2 angepasst. Sollte so in etwa funktionieren, wobei ich nicht wirklich weiß, was du mit den addEventListener bezwecken willst. Ansonsten bräuchte ich etwas mehr Quellcode, besonders den von den beiden move-Funktionen.

    Quellcode

    1. $(document).keydown(function (e) {
    2. // Falls Taste a oder e gedrückt wird
    3. if(e.which == 65 || e.which == 68) {
    4. movePlayer2(e.which);
    5. } else {
    6. // Falls Pfeiltaste hoch oder runter gedrückt wird
    7. if(e.which == 38 || e.which == 40) {
    8. movePlayer1(e.which);
    9. }
    10. }
    11. });
    12. $(document).keyup(function (e) {
    13. // Taste a oder d wurde losgelassen
    14. if(e.which == 65 || e.which == 68) {
    15. movePlayer2Release(e.which);
    16. } else {
    17. // Pfeiltaste hoch oder runter wurde losgelassen
    18. if(e.which == 38 || e.which == 40) {
    19. movePlayer1Release(e.which);
    20. }
    21. });
    Alles anzeigen
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.