CAOS-Programmierung: Beispiele: MAP

Aus Wikibooks

Einfache Welt zum Testen von Agenten[Bearbeiten]

Eingefügte Welt. Screenshot Map editor
* installation script
*  install rooms, room rememberer and sets properties.
inst
* a little object that will remember what the room numbers are.
new: simp 2 1 20412 "hblnk" 1 0 1
* der Metaraum wird erzeugt
setv ov00 addm 3199 8590 1024 768  "backr"
cmra 3500 8800  8001
******************************************************** 
setv ov01 addr ov00 3251 4202 8636 8636 9285 9285
rtyp ov01 5  
rscr
enum 2 1 20412
delr ov01
delm ov00
kill targ
next
endm

Die eingefügte Map liegt zwischen HUB und WRAP-Kammer. Die Koordinaten sind 3199/8590 .Größe beträgt 1024x768 Pixel. Es wird die Datei backr.blk benutzt die im Background Ordner gespeichert ist. Dies alles wird der Variable ov00 zugewiesen !!!(Mächtig )
Dann wird der Sichtbare bereich auf diese Welt gelegt (=>cmra 3500 8800 8001)
Die zweite Variable ov01 bekommt die Raumabgrenzungen zugewiesen.In diesem bereich sind Agenten zugelassen, und vieles mehr.( addr ist add room)
rtyp definiert Eigenschaften des Raumes.Siehe Cellular Automata
rscr leitet das Removescript ein . Zuerst wird mit delr (delete room) ov01 gelöscht.In unserem Fall nur Einer sonst einige mehr,siehe !map.cos im Bootstrap Ordner
Dann mit delm (delete metaroom) ov00 die komplette Welt.

Wie gesagt ,dies ist eine sehr einfache Welt.(Eigentlich nur ein Testscreen für Agenten)
Es ist möglich als Hintergrundblid fast alles zu verwenden;Und entsprechende Räume zu platzieren. Ferner ist es möglich die Räumen mit Eigenschaften z.B. fester Boden ,Wasser, Geruch auszustatten.

Da die Welt keine Verbindung zu Welten hat , ist es nur mit dem Befehl meta oder cmra möglich zu Anderen springen.
Mit cmra 3500 8800 8001 ist man wieder hier.

Der eingebaute signpost[Bearbeiten]

Diese Funktion gehört nicht zu CAOS sondern ist in CAOS für Dockingstation programmiert.
DS hat einen einfachen Mechanismus zu schnellen wechseln von Welten : 'signpost' (Wegweiser?)oder Favorite Places(Lieblingsplatz)

Dazu muß die Datei new_ds_fav_places.cos im Bootstgrap Ordner vorhanden sein.

In DS ist die Handhabung im Gegensatz zu C3 vereinfacht worden.
Favvorite Places wird für ein einzelner Metaraum definiert,dh die signpost Agenten müssen immer verschiedene Nummern haben.Es sollten auch Sprites für die Identifikation im Image Ordner bereitliegen.Die Datei muss fav_placee.c16 muß 3 Sprites enthalten.Die Klassifikation des Agenten ist family=1 , genus=3 .Dann wird fav_place erkannt, Außerdem sollte ein tick 10 enthalten sein .
Z.B. kann für die obige Map folgendes eingefügt werden:

* ev. für fav_place_ meso ein anderes Sprite verwenden folgt noch
new: simp 1 3 20412  "fav_place_meso" 1 0 1

attr 272
* für obige Map; sonst entsprechend ändern
mvto 3500 8800
tick 10


Somit erscheint der Icon, der immer sichtbar ist , und es ist möglich schnell von Map zu Map zu springen.