Benutzer-Werkzeuge

Webseiten-Werkzeuge


api:documentation:spiele:tastatur

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
api:documentation:spiele:tastatur [2021/01/14 16:13] – [Beispiel 1: Steuerung eines Raumschiffs] Martin Pabstapi:documentation:spiele:tastatur [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 53: Zeile 53:
  
    }    }
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +
 +===== b) Überschreiben von Ereignis-Handlern =====
 +<WRAP center round info 80%>
 +Jedes graphische Objekt (genauer: jede Unterklasse von ''Actor'') besitzt die Methoden 
 +  * ''onKeyUp(String key)'' (wird aufgerufen, wenn eine Taste losgelassen wird)
 +  * ''onKeyDown(String key)'' (wird aufgerufen, wenn eine Taste heruntergedrückt wird)
 +  * ''onKeyTyped(String key)'' (wird aufgerufen, wenn eine Taste heruntergedrückt und anschließend losgelassen wird)
 +Diese Methoden kann man überschreiben und damit auf die entsprechenden Tastaturereignisse reagieren. \\ \\ 
 +**Bemerkung:** Die Methoden ''onKeyUp'' und ''onKeyTyped'' unterscheiden sich darin, dass manche Betriebssysteme beim langen Drücken einer Taste viele KeyTyped-Ereignisse in Folge auslösen. Das KeyUp-Ereignis wird aber nur jeweils ein Mal beim Loslassen ausgelöst.
 +</WRAP>
 +
 +===== Beispiel 2: Starten von Raumschiffen durch Überscheiben von Ereignishandlern =====
 +Starte das Programm und probiere die Tasten a, b und c aus!
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 80%" data-java-online="{'withBottomPanel': false, 'id': 'Keyboard_2'}">
 +
 +<script type="text/plain" title="Keyboard_2.java">
 +new Raumschiff2(100, 500, "a");
 +new Raumschiff2(300, 500, "b");
 +new Raumschiff2(500, 500, "c");
 +new Raumschiff2(700, 500, "c");
 +
 +class Raumschiff2 extends Sprite {
 +   
 +   double vy = 0;
 +   String taste;
 +   
 +   public Raumschiff2(double x, double y, String taste) {
 +      super(x, y, SpriteLibrary.Ship_1, 1);
 +      this.taste = taste;
 +      scale(0.3);
 +      rotate(90);
 +   }
 +
 +   public void act() {
 +
 +      move(0, vy);
 +      if(isOutsideView()) {
 +         destroy();
 +      }
 +
 +   }
 +
 +   public void onKeyDown(String key) {
 +      if(key == taste) {
 +         vy = -40;
 +      }
 +   }
 +
 } }
 </script> </script>
api/documentation/spiele/tastatur.1610637216.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki