smart developer Ein Code für alle (Vorschau)
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Schwerpunkt<br />
Monkey<strong>Code</strong>r<br />
Abb. 4: Dank Monkey ist das Spiel Impact auf mehreren Plattformen lauffähig. Den Quellcode zum Spiel finden<br />
Sie auf der Smart-Developer-Heft-DVD und im Internet.<br />
Röhre. Sie müssen warten und hoffen, dass<br />
da noch etwas Besseres nachkommt. Doch<br />
wie sieht denn nun eine typische Monkey-<br />
Anwendung aus?<br />
Vorhang auf!<br />
Den Klassiker „Hallo Welt“ in Monkey zeigt<br />
Listing 1. Wir beginnen ganz unten: Den <strong>Ein</strong>stiegspunkt<br />
eines jeden Monkey-Programmes<br />
bildet die Main-Funktion. In unserem Beispiel<br />
erstellen wir hier eine Instanz unserer<br />
Klasse MyFirstApp, die wir von mojo.App abgeleitet<br />
haben.<br />
Diese enthält zwei Variablen vom Typ Integer.<br />
Außerdem haben wir einige Methoden<br />
überschrieben. Initialisierungen nehmen wir<br />
in OnCreate vor: Mit SetUpdateRate(30) erstellen<br />
wir einen Timer, welcher die OnUpdate-Methode<br />
dreißigmal pro Sekunde aufruft.<br />
Wenn wir dies nicht tun, wird OnUpdate<br />
nicht automatisch ausgeführt.<br />
Alternativen<br />
HAXE [3] bietet einen ähnlichen Ansatz wie<br />
Monkey, benutzt jedoch <strong>für</strong> unterschiedliche<br />
Targets spezialisierte Libraries. So ist es in der<br />
Theorie zwar auch möglich mehrere Plattformen<br />
zu bedienen, <strong>alle</strong>rdings ist der Anwendungszweck<br />
doch eher der, <strong>für</strong> eine vorher<br />
ausgewählte Ziel-Plattform zu entwickeln. Vorteil:<br />
In einer Webanwendungen wird <strong>für</strong> Frontund<br />
Backend die gleiche Sprache verwendet.<br />
Allerdings, sind vor <strong>alle</strong>m die Bibliotheken <strong>für</strong><br />
mobile Endgeräte noch sehr experimentell.<br />
Auch Java [4] ist sehr beliebt, wenn es darum<br />
geht, verschiedene Plattformen zu bedienen.<br />
Java gelingt dies durch eine Virtual Machine,<br />
die auf der Zielplattform läuft. Dies ist auf den<br />
meisten Handys, Desktop-Systemen und im<br />
Browser möglich. Darüber hinaus bietet Java<br />
einen riesigen Funktionsumfang und ist sauber<br />
aufgebaut.<br />
Das Corona-Framework [5] bietet die Möglichkeit<br />
unter Mac OS X und Windows <strong>für</strong> Android<br />
und iOS mit Lua und einer sehr guten, umfangreichen<br />
API zu entwickeln.<br />
Apropos OnUpdate: Hier platzieren wir auch<br />
die komplette Programmlogik. Wir speichern<br />
die Pixel-Koordinaten der Maus in unsere<br />
beiden Klassen-Variablen.<br />
Schließlich leeren wir das Display in On-<br />
Render und zeichnen den Text „Hallo Welt“.<br />
Stopp, da fehlt doch noch etwas! Das Laden<br />
von Ressourcen, zum Beispiel Bildern, erfolgt<br />
asynchron. So lange ein Ladevorgang<br />
aktiv ist, wird anstatt OnRender OnLoading<br />
aufgerufen.<br />
Zu guter Letzt hat sich sicherlich der eine<br />
oder andere Leser gewundert, was die Zeile<br />
Strict am Programmbeginn zu bedeuten<br />
hat. Monkey’s Sprachdefinition erlaubt eigentlich<br />
diverse Shortcuts. Beispielsweise<br />
müssen Sie keine Variablen-Typen oder Return-Statements<br />
angeben. In dem Fall sind<br />
Variablen automatisch vom Typ Integer. Auch<br />
Return-Statements generiert der Compiler automatisch.<br />
Im Strict-Modus dagegen ist die<br />
Definition strenger. Die oben angesprochenen<br />
Dinge müssen angegeben werden, ansonsten<br />
beschwert sich der Compiler. Jeder<br />
Entwickler kann sich so <strong>für</strong> seinen bevorzugten<br />
Modus entscheiden.<br />
Damit hat man das Grundgerüst einer Anwendung<br />
zusammen. Damit der <strong>Ein</strong>stieg<br />
noch etwas leichter fällt, befindet sich auf<br />
der Heft-DVD (und im Internet auf GitHub<br />
[2]) der Quellcode eines kompletten in Monkey<br />
programmierten Spiels, der zum Studieren<br />
und Experimentieren einlädt. Sollten Sie<br />
das Spiel weiterentwickeln, freut sich die Redaktion<br />
über eine Zusendung. Wir veröffentlichen<br />
den <strong>Code</strong> dann sehr gerne auf einer<br />
der nächsten DVDs. <br />
● ● ●<br />
Monkey im Überblick<br />
Monkey-Website: www.monkeycoder.co.nz<br />
Lizenz-Kosten: Kostenlos <strong>für</strong> HTML5, 120 USD<br />
<strong>für</strong> weitere Targets (HTML5, Flash, iOS, Android,<br />
XNA, Windows, Mac, Linux)<br />
Jungle-Website: www.jungleide.com<br />
Lizenz-Kosten: 65 Euro Plattform: Windows<br />
Der Autor<br />
Jochen Heizmann ist Spiele-Entwickler<br />
bei Gameforge, einem<br />
der führenden Publisher und Entwickler<br />
<strong>für</strong> browser- und clientbasierte<br />
Massive-Multiplayer-<br />
Spiele. Daneben enwickelt und<br />
veröffentlicht er auf seiner Website<br />
www. intermediaware. com<br />
Indie- und Casual-Games <strong>für</strong> unterschiedliche<br />
Plattformen. Sein<br />
Entwickler-Blog findet sich ebenfalls<br />
unter der genannten URL.<br />
Infos<br />
[1] Projekt-Webseite: http://<br />
www. monkeycoder. co. nz<br />
[2] Beispielapp im Quellcode:<br />
https:// github. com/<br />
JochenHeizmann<br />
[3] Haxe: www. haxe. org<br />
[4] Java:<br />
http:// www. java. com/ de/<br />
[5] Corona: www. anscamobile.<br />
com/ corona/<br />
<strong>smart</strong>-<strong>developer</strong>.de 02/2011 23