Forum moved to if-forum.org
Autor Nachricht
<  Unterschiederschied zwischen -> und found_in
Kris
BeitragVerfasst am: So, 22 Feb 2004 - 7:01  Antworten mit Zitat
Kompassleser
Kompassleser


Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain

Hallo,

hier kann mir doch bestimmt jemand erklären, worin der Unteschied bei den verschiedenen Möglichkeiten ein Objekt zu plazieren besteht:

1) ->
2) found_in
3) move objektA to objektB (in der Initialize Routine)

Ich weiß, dass bei (war's "->" ?) es die Möglichkeit gibt, über eine Aktion den Ursprungszustand wieder herzustellen. (Aber selbst die Stelle kann ich in DM4 nicht wiederfinden).

Gibt es weitere Unterschiede?

Danke für die Hilfe


Kris
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
kairo
BeitragVerfasst am: So, 22 Feb 2004 - 11:37  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 25.08.2002
Beiträge: 298

Hallo!

Mit "->" stellst du das Objekt als "Kind" unter das vorangegangene Objekt. Wenn du also erst eine Küche programmiert hast und dann einen "-> Herd", dann steht der Herd in der Küche.

Mit "found_in" kannst du mehrere Räume angeben, in denen das Objekt auftaucht. Sinnvoll für Türen, die ja zwei Räume verbinden oder z.B. für Grünlilien, die in allen Zimmern eines Studentenwohnheims stehen.

In der Startroutine sollten nur wenige Objekte verschoben werden. Wenn es um den Startzustand geht, kannst du die Objekte ja direkt dort programmieren, wo sie am Anfang erscheinen sollen. "Move" ist nur bei Veränderungen während des Spiels sinnvoll. ("move pizzawerbung to muell;")

Es gibt noch eine Möglichkeit, Objekte zu arrangieren:

"Object Herd Kueche"

Du stellst den Raum einfach hinter das Object. Das bevorzuge ich, weil es den besten Überblick bietet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Kris
BeitragVerfasst am: So, 22 Feb 2004 - 13:25  Antworten mit Zitat
Kompassleser
Kompassleser


Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain

Hallo,

die letzte finde ich auch am übersichtlichsten.

Bedeuted das, dass ein "found_in"-Objekt ein elternloses Waisenkind ist?
Und nur durch "move" oder "->" oder "Object Herd Küche" ist es ein child?

Kris
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: So, 22 Feb 2004 - 14:46  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

Zitat:
Bedeuted das, dass ein "found_in"-Objekt ein elternloses Waisenkind ist?
Und nur durch "move" oder "->" oder "Object Herd Küche" ist es ein child?


found_in benutzt man nur für Dekorationen, also Objekte mit dem Attribut scenery, die in mehreren Räumen gleichzeitig sein sollen. Jedesmal, wenn der Spieler einen Raum betritt, wird das Objekt mit verschoben, so dass es eine Tochter von real_location ist, und ein Geschwister des Spielers. (Dies geschieht in der Routine MoveFloatingObjects).

Mehr dazu steht in Abschnitt 8 des DM4.

Im allgemeinen gibt es jedes Objekt nur einmal, dann muss seine Lage in der Spielwelt der im Objektbaum entsprechen. In der Kopfzeile einer Objektdefinition kannst du dem Objekt seinen Anfangsort im Baum geben. Ob mit Pfeilen oder durch Angabe des Mutterobjekts, das ist egal.

Mit move und remove kannst du die Objekte im Baum verschieben. Aber Obacht: Ein Objekt, das verschoben wird, weiß nicht, wo es vorher war. Man kann also innerhalb eines Spiels nicht den Ursprungszustand des Objektbaums wiederherstellen. (Der Befehl "Neustart", bzw. der Opcode @restore stellen den gesamten Ursprungszustand des Spiels wieder her, man hat auf einzelne Teiles dieses Zustands, wie etwa den Objektbaum, während des Spiels keinen Zugriff.)

Alles rund um das Konzept des Objektbaums steht in §3 des DM4, insbesondere in den Absätzen 3.2. bis 3.4.

Um nochmal zusammenzufassen:

1) ->
Dies, bzw. die Alternative, das Mutterobjekt direkt anzugeben, ist der übliche Weg, wie man Objekte im Spiel platziert.

2) found_in
Dies ist ein Trick, um ein Objekt scheinbar in mehreren Räumen zugegen sein zu lassen und wird nur bei Szenerie verwendet. Ein Objekt mit found_in muss zu Beginn des Spiels nicht unbedingt eine Mutter haben, da es automatisch verschoben ist, wenn die Zeit dazu kommt.

3) move objektA to objektB (in der Initialize Routine)
Das wird üblicherweise nur für Dinge nur verwendet, die der Spieler zu Beginn des Spiels bei sich trägt. (Man kann nicht "Object Schraubenzieher Player" sagen, weil Player kein Objekt ist, sondern eine Variable, die auf ein Objekt zeigt. Man könnte aber vermutlich sagen "Object Schraubenzieher selfobj".)
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kris
BeitragVerfasst am: So, 22 Feb 2004 - 16:53  Antworten mit Zitat
Kompassleser
Kompassleser


Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain

Hi,

vielen Dank für die ausführliche Antwort.


Kris
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Inform & Glulx

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05