C4Script-Tutorial/1. Hello World

Aus Clonk Wiki
Wechseln zu: Navigation, Suche

Den Einstieg in eine Programmiersprache beginnt man normalerweise immer mit einem Programm, das "Hello World!" (englisch für "Hallo Welt!") auf den Bildschirm schreibt. Dieser Tradition wollen wir treu bleiben und ein kleines Script schreiben, welches das erledigt. Dazu erstellen wir im Entwicklermodus ein neues Szenario, nennen es Hello.c4s und kopieren ein neues Script hinein, welches nach Script.c umbenannt wird. In dieses Script kommt folgender Inhalt:

C4Script
  1. #strict 2
  2. protected
     
    func
     
    Initialize()
  3. {
  4.   
    ScriptGo(1);
  5.   
    Message("Hello World!");
  6. }
  7. protected
     
    func
     
    Script1()
  8. {
  9.   
    GameOver();
  10. }

Analyse[Bearbeiten]

Nun wollen wir uns mal anschauen, was das Script da oben genau macht:

  1. Hier finden wir den Begriff #strict 2. Für den Moment reicht es zu wissen, dass diese Zeile einfach bei jedem Script am Anfang stehen muss.
  2. Zeile zwei ist eine Leerzeile und wird ignoriert, sie dient nur der besseren Anordnung und Lesbarkeit des Codes.
  3. Die dritte Zeile leitet eine Funktion namens "Initialize" ein und ist damit ein sogennanter Funktionskopf. Was Funktionen genau machen, damit beschäftigen wir uns im nächsten Kapitel mehr.
  4. Die vierte Zeile öffnet mit einer geschweiften Klammer den Funktionsrumpf. Alles bis zur nächsten schließenden geschweiften Klammer gehört nun zu dieser Funktion.
  5. Zeile fünf beginnt die fortlaufende Scriptausführung. Das heißt, alle 10 Frames wird der interne ScriptCounter um 1 erhöht und die zugehörige Funktion "ScriptX" aufgerufen.
  6. In Zeile sechs wird die Nachricht "Hello World" auf dem Bildschirm ausgegeben, was unschwer zu erkennen ist.
  7. Zeile sieben schließt den in der vierten Zeile geöffneten Block wieder, die Funktion Initialize ist hiermit also abgeschlossen.
  8. Zeile acht ist, wie Zeile zwei, eine Leerzeile und wird ignoriert.
  9. In der neunten Zeile wird die Funktion Script1 deklariert. Nach 10 Frames wird sie aufgerufen, wenn der ScriptCounter mit ScriptGo gestartet wurde (was in diesem Fall in Initialize erledigt wird).
  10. Zeile zehn und zwölf umschließen wieder einen Block, den Funktionsrumpf.
  11. Und in der elften Zeile schließlich wird das Spiel beendet.

Was passiert also, wenn du jetzt Hello.c4s startest? Die Engine findet die Script.c im Szenario und liest sie ein. Bei Start der Runde wird die Funktion Initialize ausgeführt, dadurch erscheint am Anfang die Nachricht "Hello World!" auf dem Bildschirm. Nach kurzer Zeit erreicht der durch ScriptGo gestartete ScriptCounter den Wert 10, und die zweite Funktion beendet die Runde automatisch.

Auch wenn du vor allem im Bezug auf Funktionen jetzt nur nicht alles verstanden hast, ist das nicht so schlimm. Im nächsten Kapitel werden Funktionen sehr ausführlich behandelt.

[ Zurück (Inhalt) - Inhalt - Vor (Funktionen) ]