Zum importieren von Codes aus einer anderen Datei in das aktuelle
Skript können Sie Includes benützen. Hollywood-Skripts (.hws
Dateien) sowie Applets (.hwa
) sind dazu geeignet. Beim Ausführen
oder Kompilieren des Skripts werden diese Dateien eingebunden.
Code zu importieren ist besonders bei größeren Projekten nützlich,
um den Überblick zu behalten, als wenn alles in nur einer Quelldatei
mit viel Code geschrieben wurde.
Die Idee vom Einbinden ist, Ihr Programm in mehrere Teile zu
splitten. Zum Beispiel könnte ein Jump'n'run-Spiel in folgende
Stücke geteilt werden: Intro, Menü, Kartenmodul, Level und
Spiel. Jetzt erstellen Sie für jedes dieser Teile eine Quellcodedatei,
z.B. Intro.hws
, Menu.hws
, Kartenmodul.hws
, Level.hws
und Spiel.hws
Eine der Quellcodedateien muss der Hauptquellcode sein. Das
ist der, den Sie mit Hollywood beginnen.
Eine weitere Verwendung von Includes ist, Bibliotheken in Form von Hollywood Applets zu erstellen. Diese Applets veröffentlichen Sie dann, damit andere Programmierer von Ihnen profitieren können. Sie importieren dann das Applet in ihr eigenes Projekt. Der Vorteil von der Veröffentlichung als Hollywood-Applet ist, dass Sie Ihren Quellcode nicht freilegen müssen. Hollywood-Applets enthalten kompilierten Bytecode, der für uns nicht lesbar ist. Wenn Sie also Ihren Code schützen und trotzdem mit anderen Benutzern teilen möchten, veröffentlichen Sie ihn einfach als Hollywood-Applet.
Lassen Sie uns zum Jump'n'run-Spiel zurückkehren. Wir nehmen
an, dass das Intro.hws
unser Hauptquellcode sein wird,
da der Endbenutzer das Intro als Erstes sehen wird. Unser Intro.hws
wird grob etwa so aussehen:
@INCLUDE "Menu.hws" @INCLUDE "Kartenmodul.hws" @INCLUDE "Level.hws" @INCLUDE "Spiel.hws" ZeigeIntro() ZeigeMenu() ; Funktion ZeigeMenu() deklariert in Menu.hws SpielStart() ; SpielStart() deklariert in Spiel.hws ZeichneKarten() ; ZeichneKarten() deklariert in Kartenmodul.hws NaechstesLevel() ; NaechstesLevel() deklariert in Level.hws |
Wie Sie sehen, benutzen wir die Präprozessor-Anweisung @INCLUDE,
um die vier anderen Quellcodes in unser Intro.hws
einzubinden.
Das erlaubt es uns nun, alle Funktionen, welche in diesen vier
Dateien deklariert wurden, im Hauptquellcode von Intro.hws
aufzurufen.
Include-Dateien enthalten in den meisten Fällen nur Funktionen,
Variablen und Konstanten. Wenn Sie direkte Befehle aufrufen,
welche nicht in einer Funktion integriert wurden wie z.B. DebugPrint("Hello")
,
wird dieser Befehl vor dem Hauptquellcode ausgeführt. Hollywood
arbeitet die Befehle in der Reihenfolge ab, wie sie eingebunden
wurden. In unserem Beispiel oben würde zuerst Menu.hws
geöffnet
und sein Code importiert, dann Kartenmodul.hws
, Level.hws
und
schließlich Spiel.hws
. Also, was Hollywood kompiliert würde
wie folgt aussehen:
@INCLUDE "Menu.hws" @INCLUDE "Kartenmodul.hws" @INCLUDE "Level.hws" @INCLUDE "Spiel.hws" <...Inhalt der Datei Menu.hws...> <...Inhalt der Datei Kartenmodul.hws...> <...Inhalt der Datei Level.hws...> <...Inhalt der Datei Spiel.hws...> ZeigeIntro() ZeigeMenu() ... |
Sie sehen, dass alle Include-Dateien vor Ihrem Hauptquellcode eingebunden werden. Deshalb werden alle direkten Befehle, die nicht in einer Funktion deklariert wurden, vor dem Hauptquellcode ausgeführt.
Wenn Sie Applets einbinden möchten, geschieht dies auch mit der Präprozessor-Anweisung @INCLUDE:
@INCLUDE "Test.hwa" ; Importiert Funktionen von Test.hwa LibFunc() ; Ruft LibFunc() auf, definiert in Test.hwa |