3. Das erste Programm
Im folgenden möchten wir uns zu allererst mal das Grundgerüst einer neuen App anschauen:
Dies kann man zB. als Grundlage für ein neues Projekt nehmen.
Import mojo
Class MyApp Extends App
'Platz für Fields (Fields sind wie Fächer einer Schublade, wo du Werte/Variablen ablegen kannst
'zB.:
Field meineVar:Int=0 'Eine Variable des Typs Integer mit dem Wert 0 bei Erstellung
Method OnCreate()
'Einsprungspunkt -> Wenn das App initialisiert ist
'Dies ist der Einsprungspunkt für eigene Inits
'Hier kann man abhängig vom Target Anpassungen vornehmen
#If TARGET="flash"
#Else If TARGET="android"
#Else If TARGET="ios"
#Else
#Endif
SetUpdateRate 15 'Setzt die UpdateRate auf 15 Hertz, also 15 mal pro Sekunde OnUpdate()
'Diese muss unbedingt gesetzt werden, oder euer Programm läuft nicht!
End
Method OnLoading()
'Einsprungspunkt -> Wenn das App geladen wird
End
Method OnSuspend()
'Einsprungspunkt -> Wenn das App zB. per Multitasking in den Hintergrund geht oder einfach
'pausiert wird
'Hier kann man zb Ressourcen entladen oder auch Sounds stoppen
End
Method OnResume()
'Einsprungspunkt -> Wenn das App fortgesetzt wird (Gegenteil von OnSuspend)
End
Method OnRender()
'Einsprungspunkt für alle Darstellungen
Cls
SetColor 0,0,255
DrawText "Hello World!",0,0
End
Method OnUpdate()
'Einsprungspunkt für den Hauptloop, die OnUpdate wird regelmässig aufgerufen
' abhängig von der Update Rate
End
End
Function Main()
New MyApp
End Function
Was passiert hier und warum Class MyApp?
Sofern wir mojo verwenden (mojo ist das Grafikmodul von Monkey) müssen wir die vorhandene Mojo Klasse "App" erweitern.
Dazu schreiben wir uns eine neue Klasse, sagen wir mal MyApp, und definieren es als Erweiterung der Klasse App aus dem mojo Modul.
Class MyApp extends App
Nun können wir unsere eigene Klasse um Methoden erweitern, welche in der Klasse mojo bereits vorhanden sind, um diese dort einzufügen.
Dies sind beispielsweise:
OnRender()
OnUpdate()
OnCreate()
Ganz zum Schluss muss natürlich unsere Klasse auch erstellt werden, denn wir haben Sie so nur definiert.
Dies tun wir mit
Function Main()
New MyApp
End Function
Das Prinzip kann man sich natürlich jederzeit zu Nutze machen und den Spass den OOP bereitet, jederzeit auskosten.
So könnt ihr natürlich auch eure eigenen Klassen erweitern.
Hier ein Beispiel zum Thema Klassen:
Class Bierkasten
Private
Field Inhalt:= new List<Bier>
Public
Method Bier_hinzu:Bier(Preis:Int,Sorte:String)
'Eine temporäre Variable erstellen, Bier wird später eh returned
Local b:= new Bier
b.Preis = Preis
b.Sorte = Sorte
'Bier zum Inhalt hinzu
Inhalt.AddLast(b)
Return b
End
End
Class Bier Extends Bierkasten
Field Preis:Int
Field Sorte:String
End
Es ist sehr hilfreich erstmal analytisch vorzugehen und alles was man an Informationen für ein Projekt hat oder benötigt zu definieren.
