Rachus: KeyEvents mit mehreren Tasten gleichzeitig

Hallo liebe Selfhtml-Community,

ich habe eine Spiel mithilfe von JavaScript, CSS und (X)HTML geschrieben, das soweit auch (zumindest im Firefox, leider nicht im Internet Explorer) gut funktioniert. Allerdings erfordert es das gleichzeitige Benutzen mehrerer Tasten (da es auch für mehr Spieler am selben PC konzipiert ist). Zwischendurch passiert es dann, das die Keyup/Keydown-Events nicht funktionieren, wenn viele Tasten gedrückt werden. Gibt es da irgendeine Begrenzung in JavaScript? Kann man das vielleicht irgendwie erreichen, dass es läuft? Alle meine Versuche konnten leider bislang nichts ausrichten.

Falls ihr das Spiel sehen wollt, ich habe es vorübergehend auf der Seite eines Freundes hochgeladen. Ich muss euch aber warnen, es ist weder schön geschrieben, noch funktioniert es vollkommen.

Für Hilfe wäre ich sehr dankbar!

Noch ein schönes Wochenende

Rachus

  1. Noch einmal hallo!

    Ich habe selbst einmal hiermit Versuche angestellt und bin da zu dem Ergebnis gekommen, dass ab 5 gedrückten Tasten der PC anfängt zu piepen (das bedeutet, glaube ich, dass der Tastaturpuffer voll ist oder so etwas).
    Jetzt weite ich einfach mal meine Frage ein wenig aus: Wie viele Tasten auf der Tastatur kann der Computer denn eigentlich gleichzeitig verarbeiten? Ist das programmabhängig, betriebssystemabhängig oder gar hardwareabhängig?

    Es wäre schön, wenn ihr vielleicht so ein wenig mehr wisst als ich ;-)

    Noch einen schönen Abend.

    Rachus

    1. Hi,

      Ich habe selbst einmal hiermit Versuche angestellt und bin da zu dem Ergebnis gekommen, dass ab 5 gedrückten Tasten der PC anfängt zu piepen (das bedeutet, glaube ich, dass der Tastaturpuffer voll ist oder so etwas).

      das bedeutet, dass der Tastaturtreiber "Alarm" schreit, warum auch immer.

      Jetzt weite ich einfach mal meine Frage ein wenig aus: Wie viele Tasten auf der Tastatur kann der Computer denn eigentlich gleichzeitig verarbeiten?

      Theoretisch beliebig viele. Die Schnittstelle zwischen Tastatur und PC ist so ausgelegt, dass die Tastatur bei jedem Niederdrücken einer Taste Meldung macht, und bei jedem Loslassen. Symbolisch dargestellt für die Eingabe "Guten Tag!" (Pluszeichen: Taste gedrückt, Minuszeichen: Taste losgelassen):

      +Shift +g -g -Shift +u -u +t -t +e -e +n -n +Space -Space +Shift +t -t -Shift +a -a +g -g +Shift +1 -1 -Shift

      Das Konzept erlaubt theoretisch, dass beliebig viele Tasten gleichzeitig betätigt sein können.

      Allerdings setzt die Tastatur-Hardware hier eine erste Grenze (wenn die erreicht wird, würde aber niemand piepen, es würde einfach gar nichts passieren).

      Eine zweite Grenze ist eventuell durch den Tastaturtreiber des Betriebssystems gegeben. Die Grenze von 5 Tasten, die du empirisch ermittelt hast, wäre logisch erklärbar: Die Tasten Shift, Alt, Ctrl, Win können einzeln oder in beliebiger Kombination mit einer anderen Taste gedrückt werden. Das macht maximal 5 Tasten zugleich. Komplexere Kombinationen sind normalerweise nicht vorgesehen.

      Programme, die die Tastatur in einer "untypischen" Weise verwenden und auch das Drücken von mehr als 5 Tasten gleichzeitig erkennen wollen, müssen dann wohl temporär einen eigenen Tastaturtreiber installieren oder sich in den vorhandenen Tastaturtreiber "einhängen". Dazu bedarf es aber einer Programmiersprache, die beliebige Betriebssystemfunktionen aufrufen kann. Javascript ist damit raus aus der Nummer.

      Ciao,
       Martin

      --
      Der geistige Horizont ist der Abstand zwischen Brett und Hirn.
      1. Hallo,

        danke für die interessanten Erklärungen. Damit werde ich mich wohl von der Idee, ein Multiplayer-Spiel in JavaScript zu entwickeln, verabschieden müssen.

        Also nochmals vielen Dank für die erneute Hilfe!

        Rachus

        1. Hi!

          danke für die interessanten Erklärungen. Damit werde ich mich wohl von der Idee, ein Multiplayer-Spiel in JavaScript zu entwickeln, verabschieden müssen.

          Manchmal, so scheint es, werden Träume war: Microsoft Sidewinder X4 wertet 26 Tasten gleichzeitig aus.

          Lo!