Game-Apps für Smartphones und Tablets

Bern University oh Teacher Education  
HomeOnline-Editor startenDruckenAndroid-TurtlegrafikJava-Online

Unterschiede zwischen JGameGrid und JDroid Programmen


JGameGrid (Java SE) JDroidLib (Android)
Package kann fehlen Package mit mindestens einem Punkt nötig
Importiert wird:  ch.aplu.jgamegrid.* Importiert wird: ch.aplu.android.*
Colors sind Objekte der Klasse java.awt.Color, Standard-Farbwerte können gross- oder kleingeschrieben werden, eine RGB-Farbe wird mit new Color(int r, int g, int b) erzeugt Colors sind Integer, Standard-Farbwerte müssen grossgeschrieben werden, eine RGB-Farbe wird mit Color.rgb(int r, int g, int b) erzeugt
Maus wird mit GGMouse beschrieben Touch wird mit GGTouch beschrieben
Es gibt eine rechte und linke Maustaste, Konstanten lPress, rPress, usw. Es gibt nur einen Touchtyp, Konstanten press, longPress, usw.
Mausevent Callback heisst mouseEvent(GGMouse mouse), folglich Bezüge auf mouse, z.B. mouse.getX(), usw. Touchevent Callback heisst touchEvent(GGTouch touch), folglich Bezüge auf touch, z.B. touch.getX(), usw.
Registrieren eines GGMouseListener mit addMouseListener() Registrieren eines GGTouchListener mit addTouchListener
Parameter der Konstruktoren von GameGrid unterschiedlich Parameter der Konstruktoren von GameGrid unterschiedlich
Applikationsklasse wird meist aus GameGrid abgeleitet. Im Konstruktor können alle Methoden von GameGrid verwendet werden App-Klasse wird immer aus GameGrid abgeleitet. Im Konstruktor ist das Display-System noch nicht vollständig initialisiert. Im Konstruktor meist nur Aufruf von super(). Alle anderen Aktionen im main()
Es gehört zum guten Programmdesign, Instanzvariablen bei der Deklaration zu initialisieren Da das Grafik-System zur Zeit der Deklaration der Instanzvariablen noch nicht vollständig intialisiert ist, müssen GameGrid-bezogene Instanzvariablen, in main() zugewiesen werden
Anzeige des Grafik-Fensters mit GameGrid.show() Das Grafik-Fenster ist der ganze Display. Es gibt kein show()
GameGrid.setTitle() schreibt einen Text in die Titelzeile GameGrid.setTitle() hat keine Wirkung, durch GameGrid.setStatusText() ersetzen

GUI-Elemente mit den Swing-Klassen, Grafik mit AWT-Klassen

Swing und AWT existieren nicht und sind durch Klassen aus dem Android API ersetzt
Einfache Benützer-Eingaben mit einer JOptionPane Einfache Benützereingaben mit GGInputDialog oder GameGrid.requestXXX()
Sprites mit beliebigen Dateinamen Sprites, die vom Applikations-Package geladen werden, befinden sich im Verzeichnis <projectroot>/res/drawable. Beim Aufruf darf keine Dateiendung angegeben werden. Der Dateiname darf nur kleine Buchstaben, Zahlen und den Underline enthalten. Sprites können auch von der SD Card geladen werden
Mitteilungen werden oft als Titelzeile mit setTitle(), mit GGTextField, TextActor oder in einer separaten StatusBar ausgegeben Mitteilungen werden mit showToast(), einem TextActor oder GGTextField ausgeben. Es gibt keine  StatusBar
Applikationen brauchen nicht signiert zu werden Apps müssen immer signiert sein. Bei Verwendung des ProjectManagers wird mit dem Debug-Key des Entwicklungsrechners signiert. Diesen event. durch einen eigenen, mit keystore erzeugten Key ersetzen. Verschieden signierte App können nicht überschrieben (ersetzt) werden, sondern man muss die App zuerst deinstallieren