S t a r t |
Tagebuch |
Herunterladen |
Einblick |
Fragen? |
Futter |
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. 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>>> |