Projekt-Setup für die Entwicklung kommerzieller Android-Applikationen

Beispiel und Fazit

Inhaltsverzeichnis

Um die generelle Strategie zu zeigen, sind nachfolgend einige Code-Passagen angefügt. Zunächst sind Definition und Verwendung eines Interface zu OpenGL in der GameEngine-Klasse im Core-Modul zu hinterlegen:

package de.kaialtstaedt.fluki.core;

public class GameEngine {

private static GameEngine instance;

public static interface GLRenderer {
public void pushMatrix();
public void translate(float x, float y, float z);
}

private GlRenderer glRenderer;

public void setGLRenderer(GlRenderer glRenderer) {
this.glRenderer = glRenderer; }

public void gameLoop() {

glRenderer.pushMatrix();
glRenderer.translate(player.x(), player.y(), 0);
player.render(glRenderer);

}
}

Der GL-Renderer ist im PC-Modul mit der JOGL-Bibliothek implementiert:

package de.kaialtstaedt.fluki.pc;

include awt.glcanvas;
include jogl.GL.*;

public class FlukiPC {

class PCGLRenderer implements GLRenderer {

GL10 gl;

public void pushMatrix() {
gl.pushMatrix(); }

public void translate(float x, float y, float z) {
gl.GLTranslate(x,y,z); }
}

public static void main(String[] args) {

PCGLRenderer pcRenderer = new PCGLRenderer();
GameEngine.getInstance().setRenderer(new PCGLRenderer());


}

Die Android-Implementierung sieht fast identisch aus, nur das anstelle von JOGL die Khronos-OpenGL- Bibliothek des Android SDK verwendet wird.

Mit überschaubarem Aufwand kann man mit den Eclipse-Bordmitteln eine einfache und effiziente Gliederung eines Projekts in verschiedene Module realisieren. Der zusätzliche Aufwand, einen PC-Client zu bauen, lohnt sich, sobald man signifikante Anteile von Ablauflogik hat. Deren Debugging und das Erstellen der Regeln sind auf dem PC naturgemäß einfacher.

Kai Altstaedt
ist Diplom-Informatiker und arbeitet als System-Ingenieur bei Airbus. Er beschäftigt sich mit embedded-Anwendungen und modernen Bedienkonzepten.


Quelle:

[1] Kent Beck; Extreme Programming Explained; Pearson Education; 2004 (2. Aufl.)
(jul)