[JavaScript] Tastatur eingaben ?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von C2C2, 3. März 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 3. März 2010
    Tastatur eingaben ?

    Also ich programmiere gerade nen gamen ("Okémon") ^^ und jetzt brauch ich nen befehl

    wenn einer "a" drückt starte funktion left();

    (das auch mit w,s,d) aber müsste ja gleich sein^^
    wäre erstmal nice
     
  2. 3. März 2010
    AW: Tastatur eingaben ?

    http://forum.jswelt.de/javascript/33880-funktion-aufruf-per-tastatureingabe.html
     
  3. 3. März 2010
    AW: Tastatur eingaben ?

    Hier mal eine kleine jQuery Lösung von mir:
    http://nanobyte-online.de/versuchslabor/javascript/wasd-event.html
     
  4. 3. März 2010
    AW: Tastatur eingaben ?

    funktioniert aber scheinbar nur mit opera und safari..
    firefox/ie8 machen jedoch bei mir überhaupt nichts..
     
  5. 3. März 2010
    AW: Tastatur eingaben ?

    für gewöhnlich sollte es aber auch mit FF und IE funzen..
    zB hier:
    http://broof.de/showroom/
    da kann man mit dem Ziffernblock die Bilder ändern..
    Und das ist auch mit jQuery!

    MfG
     
  6. 3. März 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Tastatur eingaben ?

    Ich hab noch eine kleine Änderung vorgenommen, Firefox2 wollte nicht!

    In diesen Browsern, außer im IE5.55 (Stürzt selbst bei Google.de ab), funktioniert das Script!

    Bild


    Kleines Update:
    Wenn man die Taste nach ein Paar sekunden los lässt bewegt sich die Box nicht mehr selbständig weiter!

    Box:
    http://nanobyte-online.de/versuchslabor/javascript/wasd-event.html

    Figur (Einfache Animation): (Definitiv nicht Perfekt )
    http://nanobyte-online.de/versuchslabor/javascript/wasd-event-advanced.html
     
  7. 5. März 2010
    AW: Tastatur eingaben ?

    ich hatte mal vor längerer zeit ein kleines script erstellt, vielleicht hilft es dir (benötigt prototye)

    HTML:
    <html>
     <head>
     <title>test</title>
     <script type="text/javascript" src="http://prototypejs.org/assets/2009/8/31/prototype.js"></script>
     <script type="text/javascript" src="keyboard.js"></script>
     <script type="text/javascript">
     Keyboard.observeKey(Keyboard.KEY_ARR_UP, function(event) {
     alert("pfeil nach oben gedrückt");
     });
     
     Keyboard.observeChar("w", function(event) {
     alert("w gedrückt");
     });
     </script>
     </head>
     <body>
     
     </body>
    </html>
    das script:
    Code:
    var Keyboard = (function() {
     var events = [{},{}];
     
     function fire(type, key, event) {
     if(typeof events[type][key] == "undefined")
     return;
     
     for(var i = 0, l = events[type][key].length; i < l; ++i) {
     if(events[type][key][i] == undefined)
     continue;
     
     if(!events[type][key][i](event))
     break;
     }
     }
     
     document.observe("keydown", function(event) {
     var key = event.keyCode || event.which;
     fire(0, key, event);
     });
     
     document.observe("keypress", function(event) {
     var chr = String.fromCharCode(event.charCode);
     fire(1, chr, event);
     });
     
     return {
     EVENT_TYPE_KEY: 0,
     EVENT_TYPE_CHAR: 1,
     
     KEY_ARR_UP: 38,
     KEY_ARR_DOWN: 40,
     KEY_ARR_LEFT: 37,
     KEY_ARR_RIGHT: 39,
     KEY_ENTER: 13,
     KEY_RETURN: 8,
     KEY_SPACE: 32,
     KEY_TAB: 9,
     KEY_SHIFT: 16,
     KEY_DELETE: 46,
     
     exec: function(type, key) {
     fire(type, key, {});
     },
     
     observing: function(type, key) {
     return ((typeof events[type][key] != "undefined")
     && events[type][key].collect(function(k) { return k != undefined; }).length > 0);
     },
     
     observe: function(type, key, func) {
     if(typeof events[type][key] == "undefined")
     events[type][key] = [];
     
     func.___event_index = events[type][key].push(func) - 1;
     },
     
     observeKey: function(key, func) {
     this.observe(this.EVENT_TYPE_KEY, key, func);
     },
     
     observeChar: function(chr, func) {
     this.observe(this.EVENT_TYPE_CHAR, chr, func);
     },
     
     stopObserving: function(type, key, func) {
     if(typeof func.___event_index == "undefined"
     || typeof events[type][key] == "undefined"
     || typeof events[type][key][func.___event_index] == "undefined")
     return false;
     
     events[type][key][func.___event_index] = undefined;
     delete events[type][key][func.___event_index];
     
     return true;
     },
     
     stopObservingKey: function(key, func) {
     this.topObserving(this.EVENT_TYPE_KEY, key, func);
     },
     
     stopObservingChar: function(chr, func) {
     this.stopObserving(this.EVENT_TYPE_CHAR, chr, func);
     }
     };
    })();
    
    
    
    
    (funktioniert im IE nur mit keycodes, nicht aber mit buchstaben)
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.