23.04.2014 Aufrufe

Bequemer als Backup Bequemer als Backup - Wuala

Bequemer als Backup Bequemer als Backup - Wuala

Bequemer als Backup Bequemer als Backup - Wuala

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Know-how | Spieleprogrammierung mobil<br />

Gerhard Völkl<br />

Play mobil<br />

Handy-Spiele mit Java ME selbst gemacht<br />

Neben Klingeltönen mit knatternden Fröschen<br />

oder heulenden Bärchen sind Spiele die beliebtesten<br />

Downloads für Mobiltelefone. Mit ein paar Java-<br />

Grundkenntnissen und dem kostenlosen „Java<br />

Wireless Toolkit“ (WTK) von Sun kann jeder seine<br />

eigene Spielewelt für die Westentasche erschaffen.<br />

Die 1,85 Milliarden Java-fähigen<br />

Handys weltweit<br />

sind eine der größten<br />

Spieleplattformen überhaupt [1].<br />

Branchenriesen wie Nintendo<br />

oder Sony würden sich bei ihren<br />

Spielekonsolen über solche Verkaufszahlen<br />

freuen. Wenn sich<br />

jemand entschließt, ein neues<br />

Spiel für eine Konsole zu entwickeln,<br />

wird er nicht ohne Weiteres<br />

an ein kostenloses Entwicklerpaket<br />

herankommen. Im Mobiltelefonbereich<br />

ist es wie bei<br />

anderen Java-Plattformen auch:<br />

Hier gibt es von Sun ein freies<br />

Softwarepaket, das „Java Wireless<br />

Toolkit“ (WTK), das vom<br />

Compiler über die Bibliotheken<br />

bis hin zum Debugger alles enthält,<br />

was zur Programmerstellung<br />

notwendig ist [2]. Einfacher<br />

geht es natürlich mit einer integrierten<br />

Entwicklungsumgebung<br />

wie zum Beispiel NetBeans<br />

(siehe Kasten auf S. 200).<br />

Irgendwann einmal ist Java<br />

mit dem großen Schlagwort<br />

„WORA” (Write Once, Run Anywhere<br />

– „Einmal schreiben, läuft<br />

überall“) angetreten. Doch in der<br />

Realität zeigte sich, dass etwa ein<br />

Java-Programm, das für einen<br />

Multiprozessor-Server geschrieben<br />

wurde, nicht unbedingt auf<br />

einem Handy mit wenigen Kilobyte<br />

Speicher läuft. Deshalb gibt<br />

es für kleine Geräte wie Mobiltelefone<br />

eine spezielle Ausgabe:<br />

Java ME (Mobile Edition), die<br />

ganz kleine Schwester von Java<br />

SE für den Desktop und Java EE<br />

für den Unternehmensserver.<br />

Java ME enthält die gleiche Programmiersprache<br />

wie die anderen<br />

Ausgaben, nur leicht abgespeckt.<br />

Der große Unterschied<br />

zeigt sich in den Bibliotheken, die<br />

für die Bedürfnisse der kleinen<br />

Geräte optimiert sind.<br />

Da die Milliarden existierenden<br />

Java-Handys von den verschiedensten<br />

Herstellern in einer<br />

nicht überschaubaren Typenvielfalt<br />

produziert wurden, ist nicht<br />

sichergestellt, dass ein Programm<br />

mit bestimmten Anforderungen<br />

wirklich auf jedem<br />

dieser Geräte läuft. Wie im Java-<br />

Bereich üblich, haben Arbeitskreise<br />

Spezifikationen für Klassen,<br />

Methoden und so weiter<br />

(Java Specification Requests –<br />

JSRs) festgelegt [3]. Für das Spiel<br />

in diesem Artikel genügen die<br />

folgenden Spezifikationen:<br />

–ˇJSR 139 – Connected Limited<br />

Device Configuration (CLDC) 1.1<br />

–ˇJSR 118 – Mobile Information<br />

Device Profile (MIDP) 2.0<br />

Nur auf Handys, die diese erfüllen,<br />

funktioniert es auch. Diese<br />

Angaben sollten Sie in der Gebrauchsanleitung<br />

zu Ihrem Gerät<br />

finden.<br />

Ziel dieses Artikels ist, ein einfaches<br />

Handy-Spiel zu entwickeln.<br />

Ein einsamer Fisch namens<br />

Freddy muss um alle möglichen<br />

Hindernisse herumschwimmen,<br />

Punkte sammeln und den<br />

Schlüssel zum nächsten Level finden.<br />

Zugegeben, das kommt<br />

einem irgendwie bekannt vor.<br />

Spiel-Film<br />

Ein Actionspiel ist im Grunde genommen<br />

nichts anderes <strong>als</strong> ein<br />

interaktiver Film. Das Programm<br />

zeichnet möglichst oft ein Bild<br />

auf das Display, damit der Eindruck<br />

einer Bewegung entsteht,<br />

und reagiert in der Zwischenzeit<br />

auf die Eingaben des Spielers,<br />

aus denen es zum Beispiel die<br />

neue Position der Spielfiguren<br />

berechnet. Aus diesem Ablauf<br />

ergibt sich eine einfache Grundstruktur,<br />

die klassische Spieleschleife:<br />

Solange Spiel nicht zu Ende:<br />

- aktualisiere das Spielgeschehen unter<br />

Einbeziehung der Eingaben des<br />

Spielers (Update)<br />

- zeichne ein neues Bild auf das<br />

Display (Render)<br />

Da in Java ohne eine Klasse nichts<br />

geht, ist die Schleife in der Klasse<br />

MobileFishCanvas untergebracht. Diese<br />

eigene Klasse ist von GameCanvas,<br />

einer Standardklasse des Java ME<br />

Game API, abgeleitet. Aus dieser<br />

Bibliothek (javax.microedition.lcdui.<br />

game.*) stammen die meisten in<br />

diesem Artikel verwendeten Klassen,<br />

da sie einen Großteil der für<br />

einfache Spiele benötigten Funktionen<br />

realisiert.<br />

Die Klasse GameCanvas repräsentiert<br />

eine von der konkreten<br />

Hardware unabhängige Ausgabefläche<br />

und bringt alle später<br />

benötigten grundlegenden Ausgabemöglichkeiten<br />

mit. Sie bildet<br />

den Rahmen für die Spieleschleife,<br />

die möglichst ungestört<br />

in einem eigenen Programmstrang<br />

(Thread) laufen sollte.<br />

In einem Mobiltelefon können<br />

gleichzeitig alle möglichen Sa-<br />

198 c’t 2008, Heft 20<br />

©<br />

Copyright by Heise Zeitschriften Verlag GmbH & Co. KG. Veröffentlichung und Vervielfältigung nur mit Genehmigung des Heise Zeitschriften Verlags.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!