CAOS-Programmierung: Beispiele: Simpel
<< Beispiele | Inhaltsverzeichnis | >>
Mit Dockingstation
[Bearbeiten]Der nachfolgende Quelltext und die Erklärung sind von der Seite [[1]] übernommen
Die Autorin Jasmin Handwerker ist mit der Veröffentlichung ausdrücklich einverstanden
Ich habe einige Stellen angepasst.
Hinweis : Es muß die Datei hpot.c16 aus C3 im Images Ordner vorhanden sein (Oder eine selbst gemalte Grafik! folgt noch) Es muß die Datei drnk.wav aus C3 im Sound Ordner vorhanden sein. Steht die Dateien nicht zur Verfügung kann die Zeile weggelassen werden.
Der Quelltext
inst new: simp 2 11 20400 "hpot" 2 0 3500 attr 195 bhvr 48 perm 60 accg 4 fric 100 elas 40 setv va00 game "CreatorX" * alternativ mvto 6150 9150 setv va01 game "CreatorY" * cmra 6150 9150 0 doif va00 eq 0 and va01 eq 0 * löschen setv va00 5687 * löschen setv va01 3670 * löschen endi * löschen mvsf va00 va01 * löschen emit 8 .5 endm scrp 2 11 20400 6 snde "dr10" endm scrp 2 11 20400 12 lock snde "drnk" stim writ from 79 1 wait 5 pose 1 wait 10 kill ownr endm rscr enum 2 11 20400 kill targ next scrx 2 11 20400 12 scrx 2 11 20400 6
Diese Version ist ursprünglich für C3.Für Dockingstation die Zeile 'setv va00 5687 setv va01 3670' mit 'setv va00 6150 setv va01 9150' ersetzen.>br /> Nun zu den Erklärungen:
inst
Hiermit wird das Objekt "installiert". inst leitet immer den Beginn eines Objekts ein. Außerdem hat inst die Funktion, dass es nicht von anderen Programmen unterbrochen wird, also alles ohne Unterbrechung abgearbeitet wird.
new: simp 2 11 20400 "hpot" 2 0 3500
Jetzt wird das Objekt erstellt. simp bedeutet, dass es sich um ein simples Objekt handelt. Die nächsten 3 Zahlen: 2 11 20400 sind wie folgt definiert: 2 ist family, 21 gender (hier Food) und 20400 die Skriptnummer. "hpot" ist der Name der Sprite-Datei. Er muss in Anführungszeichen stehen und ohne die Endung .c16, da es sonst eine Fehlermeldung gibt, wenn man das Objekt in die Welt einfügen will. Die nächsten beiden Zahlen beziehen sich auf die Spritedatei. Die erste Zahl gibt die Anzahl der Bilder in der Spritedatei an, hier ist die Anzahl 2. Die nächste Zahl gibt das Bild an, das als erstes gezeigt werden soll. Da die Nummerierung in einer Spritedatei immer mit 0 beginnt, muss man auch 0 angeben, wenn man das erste Bild anzeigen will. Die letzte Zahl gibt die Ebene an, in der das Objekt später in der Welt sichtbar sein soll. Der Wert geht von 0 bis 5000, wobei 0 ganz hinten ist und 5000 ganz vorne. 3500 ist also ein Mittelwert und immer gut zu gebrauchen ist.
attr 195
attr bedeutet Attributes, also Attribute Flags. Der Honigtopf soll tragbar sein, von der Maus aufgenommen werden können, Raumbegrenzungen haben und den Naturgesetzen unterliegen. Die Werte werden addiert. attr 195 ist also 1 + 2 + 64 + 128 = 195.
bhvr 48
bhvr legt fest, was dem Creature erlaubt ist. Auch bei bhvr werden die Werte addiert. 16 + 32 = 48.
perm 60
Durchlässigkeit. Werte zwischen 1 und 100 sind erlaubt.
accg 4
Beschleunigung. Werte zwischen 1 und 100 sind erlaubt.
fric 100
Reibung. Werte zwischen 1 und 100 sind erlaubt.
elas 40
Elastizität. Werte zwischen 1 und 100 sind erlaubt.
setv va00 game "CreatorX" / setv va01 game "CreatorY"
Mit setv werden Variablen Werte zugewiesen. In unserem Fall werden den Variablen va00 und va01 die Spielvariablen CreatorX und CreatorY zugewiesen.
doif va00 eq 0 and va01 eq 0
Nun folgt eine doif-Schleife. Sie überprüft, ob die Variablen va00 und va01 gleich 0 sind. eq bedeutet equals und mit and verknüpft man zwei Aussagen.
setv va00 5687 / setv va01 3670
Diese beiden Variablenzuweisungen werden nur ausgeführt, wenn das Ergebnis der doif-Schleife wahr war, also beide Variablen 0 sind. In diesem Fall werden den Variablen zwei Integerwerte zugewiesen (also ganze Zahlen).
endi
Mit endi wird die doif-Schleife beendet.
mvsf va00 va01
Der Befehl mvsf bewegt das Objekt zu den nachfolgenden Koordinaten. In diesem Fall ist die x-Koordinate die Variable va00 und die y-Koordinate die Vaiable va01.
emit 8 .5
emit sagt dem Objekt, dass es regelmäßig eine Menge an Stoffen an seine Umgebung abgeben soll. 8 ist die Substanz und .5 die Menge. Folgende Substanzen können verteilt werden: 1 = Licht 2 = Hitze, 3 = Feuchtigkeit 4 = verfaulende Nährstoffe 5 = Wassermassen 6 = Proteine 7 = Kohlenhydrate 8 = Fette 9 = Blumen 10 = Maschinerie 11 = Eier 12 = Norns 13 = Grendels 14 = Ettins 15 = Norn-Heim 16 = Grendel-Heim 17 = Ettin-Heim 18 = Geräte
endm
Damit wird das Installationsskript beendet und auch andere Unterskript beendet man damit.
scrp 2 11 20400 6
scrp sind Unterskripte. Bei diesen scrp wird zuerst wieder die family Nummer, danach die gender Nummer und die selbst gewählte Skriptnummer genannt (siehe oben bei inst). Am Ende kommt die Nummer des Unterskripts. 6 bedeutet Kollisionsskript.
snde "dr10"
Mit snde ruft man den Befehl auf, der eine wav-Datei abspielen soll. Nach dem Befehl kommt in Anführungszeichen der Name der wav-Datei ohne Endung. Das Kollisionsskript bewirkt also, dass der Sound dr10.wav abgespielt wird, wenn der Norn den Agenten fallen lässt.
scrp 2 11 20400 12
Dieses Unterskript ist das Essensskript.
lock
lock bewirkt, dass alle Befehle, die jetzt ablaufen nicht von anderen Programmen unterbrochen werden können.
stim writ from 79 1
stim writ sendet einen Stimulus zu dem Creature. Die erste Zahl ist der Stimulus, in unserem Fall gegessenes Futter. Die zweite Zahl gibt an wieviel.
wait 5
Der Befehl wait blockiert das Skript für die angegeben Zahl von Ticks. In unserem Fall 5.
pose 1
Pose zeigt ein Bild von der Spritedatei. Will man, dass ein anderes Bild von der Spritedatei angezeigt wird, benutzt man diesen Befehl und gibt die Bildnummer an. Man beachte dabei, dass auch hier wieder der Bildzähler mit 0 beginnt (also 0 das erste Bild ist).
kill ownr
Jetzt lassen wir das Objekt mit diesem Befehl verschwinden.
Nochmal in der Zusammenfassung: Mit dem Essenscript bewirken wir, dass beim Essen die Wav-Datei drnk abgespielt wird, das Creature einen Essensstimulus erhält, einige Ticks gewartet wird, das Objekt sein Aussehen verändert und schließlich verschwindet, da es ja gegessen wurde.
rscr
rscr leitet das Removeskript ein. Damit wird das Objekt und seine Unterskripte aus der Welt entfernt. Man sollte immer bei seinen Agenten auch ein Removeskript dazu fügen.
enum 2 11 20400
Mit enum sucht man das Objekt. Dahinter stehen wieder die 3 Zahlen, die schon oben erläutert wurden. enum leitet eine Schleife ein, denn es wird jetzt jedes Objekt überprüft, bis das angegebene gefunden wurde.
kill targ
Nun wird das Objekt aus der Welt entfernt.
next
next beendet die enum-Schleife.
scrx 2 11 20400 12 / scrx 2 11 20400 6
Nun werden auch die Skripte des Objekts gelöscht. Dies geschieht mit scrx und den Skriptnummern.
Siehe c16 Datei für das Beispiel
inst new: simp 2 11 20400 "hpot" 2 0 3500 attr 195 bhvr 48 perm 60 accg 4 fric 100 elas 40 setv va00 game "CreatorX" setv va01 game "CreatorY" doif va00 eq 0 and va01 eq 0 setv va00 5687 setv va01 3670 endi mvsf va00 va01 emit 8 .5 endm scrp 2 11 20400 6 snde "dr10" endm scrp 2 11 20400 12 lock snde "drnk" stim writ from 79 1 wait 5 pose 1 wait 10 kill ownr endm rscr enum 2 11 20400 kill targ next scrx 2 11 20400 12 scrx 2 11 20400 6
Dockingstation ist nicht notwendig
[Bearbeiten]Für diese Beispiel ist meine c16 Datei nötig.
folgt noch
<< Beispiele | Inhaltsverzeichnis | >>