S
t
a
r
t
Tagebuch
Tagebuch
egg-O-shOOter herunterladen
Herunterladen
Wie funktioniert egg-O-shOOter ?
Einblick
Häufig gestellte Fragen
Fragen?
egg-O-shOOter Futter
Futter
Links
Verweise
I
m
p
r
e
s
s
u
m
Click here for the english version.

In dieser Rubrik könnt ihr die Umgestaltung des egg-O-shOOters nach euren eigenen Vorstellungen erlernen.
<<<     Bedingte Verzweigungen     >>>

Durch Ereignisse ausgelöste Verzweigungen haben wir in den vorangegangenen Kapiteln bereits kennengelernt. Jetzt möchte ich nochmal genauer auf 'bedingte Verzweigungen' eingehen, was bedeutet, dass Objekte nur beim Vorhandensein anderer Objekte aktiviert bzw. deaktiviert werden.
Kreieren wir dazu ein kleines Spielchen:
Drei Eier hüpfen im Spielfeld umher und erst wenn das letzte Ei abgeschossen ist, erscheint unser kleiner Freund, die Fliege.
Wir brauchen also besagte 3 Eier und bei jedem Hit-Ereignis wird die Fliege aktiviert. Diese Aktivierung wird aber jedes mal unterbunden, so lange noch ein Ei aktiv ist. Das Szenario sieht wie folgt aus:

#1#
ObjectNumber=1       #1#Ei Nummer 1 (Gelb) / Egg number 1 (Yellow)
ObjectFront=1
ObjectStartActive=1
ObjectTexture=90
ObjectF=H4
ObjectD=H1
ObjectSecMin=-1
ObjectSecMax=-1
ObjectConnect=-1
ObjectKoordPre=-1
ObjectHitDirection=0
ObjectXMin=-800
ObjectXMax=+800
ObjectYMin=-170
ObjectYMax=+200
ObjectDMin=20
ObjectDMax=20
ObjectAMin=0
ObjectAMax=0
ObjectVXMin=100
ObjectVXMax=100
ObjectVYMin=100
ObjectVYMax=200
ObjectVRotMin=100
ObjectVRotMax=200
ObjectRotAxis=3
ObjectVGrowMin=0
ObjectVGrowMax=0
ObjectGravMin=0
ObjectGravMax=0
ObjectMoveXMin=-800
ObjectMoveXMax=+800
ObjectMoveYMin=-200
ObjectMoveYMax=+200
ObjectMoveAMin=-360
ObjectMoveAMax=+360
ObjectMoveRMin=1
ObjectMoveRMax=1000
ObjectMoveType=3
ObjectType=3
ObjectBenefitMin=*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0
ObjectBenefitMax=*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0
ObjectMirror=0
ObjectMovePointing=0
ObjectHitSound=
ObjectAppearSound=
ObjectHitTextEnglish=
ObjectHitTextGerman=

#1#
ObjectNumber=2       #1#Ei Nummer 2 (Grau) / Egg number 2 (Grey)
ObjectFront=1
ObjectStartActive=1
ObjectTexture=94
ObjectF=H4
ObjectD=H2
ObjectSecMin=-1
ObjectSecMax=-1
ObjectConnect=-1
ObjectKoordPre=-1
ObjectHitDirection=0
ObjectXMin=-800
ObjectXMax=+800
ObjectYMin=-170
ObjectYMax=+200
ObjectDMin=20
ObjectDMax=20
ObjectAMin=0
ObjectAMax=0
ObjectVXMin=100
ObjectVXMax=100
ObjectVYMin=100
ObjectVYMax=200
ObjectVRotMin=100
ObjectVRotMax=200
ObjectRotAxis=3
ObjectVGrowMin=0
ObjectVGrowMax=0
ObjectGravMin=0
ObjectGravMax=0
ObjectMoveXMin=-800
ObjectMoveXMax=+800
ObjectMoveYMin=-200
ObjectMoveYMax=+200
ObjectMoveAMin=-360
ObjectMoveAMax=+360
ObjectMoveRMin=1
ObjectMoveRMax=1000
ObjectMoveType=3
ObjectType=3
ObjectBenefitMin=*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0
ObjectBenefitMax=*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0
ObjectMirror=0
ObjectMovePointing=0
ObjectHitSound=
ObjectAppearSound=
ObjectHitTextEnglish=
ObjectHitTextGerman=

#1#
ObjectNumber=3       #1#Ei Nummer 3 (Rot) / Egg number 3 (Red)
ObjectFront=1
ObjectStartActive=1
ObjectTexture=98
ObjectF=H4
ObjectD=H3
ObjectSecMin=-1
ObjectSecMax=-1
ObjectConnect=-1
ObjectKoordPre=-1
ObjectHitDirection=0
ObjectXMin=-800
ObjectXMax=+800
ObjectYMin=-170
ObjectYMax=+200
ObjectDMin=20
ObjectDMax=20
ObjectAMin=0
ObjectAMax=0
ObjectVXMin=100
ObjectVXMax=100
ObjectVYMin=100
ObjectVYMax=200
ObjectVRotMin=100
ObjectVRotMax=200
ObjectRotAxis=3
ObjectVGrowMin=0
ObjectVGrowMax=0
ObjectGravMin=0
ObjectGravMax=0
ObjectMoveXMin=-800
ObjectMoveXMax=+800
ObjectMoveYMin=-200
ObjectMoveYMax=+200
ObjectMoveAMin=-360
ObjectMoveAMax=+360
ObjectMoveRMin=1
ObjectMoveRMax=1000
ObjectMoveType=3
ObjectType=3
ObjectBenefitMin=*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0
ObjectBenefitMax=*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0
ObjectMirror=0
ObjectMovePointing=0
ObjectHitSound=
ObjectAppearSound=
ObjectHitTextEnglish=
ObjectHitTextGerman=

#1#
ObjectNumber=4       #1#Fliege / Fly
ObjectFront=1
ObjectStartActive=0
ObjectTexture=11/50,12/50
ObjectF=-1
ObjectD=-1
ObjectSecMin=-1
ObjectSecMax=-1
ObjectConnect=-1
ObjectKoordPre=c1,c2,c3,1,2,3
ObjectHitDirection=0
ObjectXMin_0
ObjectXMax_0
ObjectYMin_0
ObjectYMax_0
ObjectDMin=20
ObjectDMax=20
ObjectAMin=0
ObjectAMax=0
ObjectVXMin=100
ObjectVXMax=100
ObjectVYMin=100
ObjectVYMax=200
ObjectVRotMin=100
ObjectVRotMax=200
ObjectRotAxis=3
ObjectVGrowMin=0
ObjectVGrowMax=0
ObjectGravMin=0
ObjectGravMax=0
ObjectMoveXMin=-800
ObjectMoveXMax=+800
ObjectMoveYMin=-200
ObjectMoveYMax=+200
ObjectMoveAMin=-360
ObjectMoveAMax=+360
ObjectMoveRMin=1
ObjectMoveRMax=1000
ObjectMoveType=3
ObjectType=3
ObjectBenefitMin=*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0
ObjectBenefitMax=*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0,*0
ObjectMirror=0
ObjectMovePointing=0
ObjectHitSound=
ObjectAppearSound=
ObjectHitTextEnglish=
ObjectHitTextGerman=

Um bei all den Eiern und Hasen nicht den Überblick zu verlieren, ist es eine gute Idee, mit den Variablen

BunnysMin=0
BunnysMax=0
...
JumpingBunnysMin=0
JumpingBunnysMax=0

alle anderen Eier und Sprunghasen zu deaktivieren.
Das Unterbinden der Aktivierung der Fliege wird mit Hilfe der Variablen ObjectKoordPre gesteuert. Alle Objekte, die hier mit dem Buchstaben 'c' davor aufgelistet sind, verhindern die Aktivierung von Objekt Nummer 4 (der Fliege), sollte auch nur eines von ihnen aktiv sein. Erst wenn die Objekte 1, 2 und 3 deaktiviert wurden, erscheint die Fliege - vorausgesetzt, es tritt ein Ereignis ein, dass diese Aktivierung auslöst. Da bei jedem Treffer eines Eies diese Aktivierung ausgelöst wird, erscheint die Fliege zwangsläufig bei dem Treffer des letzten Eies. Da die Objekte 1 bis 3 zusätzlich die Alternativen für die Koordinatenübernahme sind und die Aktivierung mit dem letzten Ei erfolgt, ist dieses auch gleichzeitig die Quelle für die Startparameter der Fliege. Diese schlüpft also aus dem letzten getroffenen Ei.
Alles klar? War ja wohl nicht zu schwer.
Kommen wir nun zur Bedingung 'Fliege erscheint nur, wenn das gelbe Ei noch aktiv ist'. Diese Bedingung wird durch ein vorangestelltes 'b' zum Ausdruck gebracht. Daher müsst ihr bei der Fliege ObjectKoordPre=b1,2,3 setzen und bei dem gelben Ei muss ObjectF=-1 sein. Schießt ihr nun zuerst auf das gelbe Ei, erscheint die Fliege nie. Trefft ihr zuerst das graue oder rote Ei, schlüpft aus diesem die Fliege, auch wenn noch ein Ei übrig ist.
Etwas unschön ist dabei die Tatsache, dass die Fliege nicht unbedingt aus dem Ei schlüpft, das als letztes getroffen wurde. Schießt ihr nämlich zuerst auf das rote Ei, erscheint die Fliege dennoch an der Stelle des grauen Eies. Für diesen Fall gibt es nun das vorangestellte 'g'. Damit wird überprüft, ob das in ObjectKoordPre aufgeführte Objekt das Ereigniss-auslösende Objekt ist und wenn ja, werden von diesem die Koordinaten übernommen.
Mit ObjectKoodrPre=b1,g2,g3 schlüpft die Fliege immer aus dem getroffenen Ei, sofern das gelbe Ei noch existiert.
Screenshot egg-O-shOOter

Beachtet, dass die Reihenfolge der Auflistung unter ObjectKoordPre entscheidend ist!
Von Objekten mit vorangestellten 'b', 'c' oder 'd' werden keine Koordinaten übernommen! Diese definieren nur Bedingungen für oder gegen das Aktivieren des entsprechenden Objektes. Die Abarbeitung wird abgebrochen, sobald ein gültiges Objekt zur Koordinatenübernahme gefunden wurde.
Setzt ihr z.B.
ObjectKoordPre=1,2,b3
und Objekt Nummer 1 ist aktiv, dann bricht die Abarbeitung VOR Objekt 2 ab. Die Prüfung, ob Object Nummer 3 existiert, wird nicht mehr durchgeführt!
Wird KEIN aktives Objekt für die Koordinatenübernahme gefunden, kann das zweierlei bedeuten:
1.) Ihr habt kein Objekt zur Koordinatenübernahme definiert (ObjectKoordPre=-1) bzw. es sind nur Objekte für Bedingungen aufgelistet ('b', 'c' oder 'd'). Dann wird das Objekt mit seinen eigenen Variablenwerten aktiviert.
2.) Ihr habt ein oder mehrere Objekte zur Koordinatanübernahme definiert, aber keines davon ist aktiv. Dann wird die Aktivierung des Objektes unterbunden!

<<<Zurück zu Kettenglieder          Weiter zur Kunst des Weglassens>>>