26.02.2014 Aufrufe

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!