Hallo Zusammen,
Wieder suche ich hier im Kreise fähigerer Programmierer um Erläuchtung:
Ich möchte bei einem Objekt verschiedene Animationen nacheinander abspielen ohne 'Play Next Loop after' bei den Views zu verwenden. Am Schluss soll wieder bei der ersten Animation begonnen werden.
So ungefähr sollte es aussehen:
Repeatedly execute:
if (z==0) {
object[2].SetView(2,0);
object[2].Animate(0,6,eOnce,eNoBlock,eForwards);
z=1;
if (z==1) {
object[2].SetView(2,0);
object[2].Animate(0,6,eOnce,eNoBlock,eForwards);
z=2;
etc...
if (z==5) {
z=0;
}
Da das Programm wegen eNoBlock gleich zur letzten Animation springt habe ich dann noch folgendes versucht:
if (z==0) {
object[2].SetView(2,0);
object[2].Animate(0,6,eOnce,eNoBlock,eForwards);
while (object[2].Animating) z=0;
z=1;
Das hat das Programm auch nicht geschluckt. Was mach ich falsch?
Hab's auch mit Timer versucht, doch dann muss ich bei den unterschiedlich langen Loops immer wieder die Zeit berechnen was sicher nicht die Lösung sein muss.
AGS 2.71 Möchte mehrere Objekte nacheinander abspielen
- steven
- Verpackungs-Wegwerfer
- Beiträge: 64
- Registriert: 26.01.2006, 23:32
- Wohnort: Schweiz
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: AGS 2.71 Möchte mehrere Objekte nacheinander abspielen
Code: Alles auswählen
if (!object[2].Animating) {
if (z == 0) {
...
z = 1;
}
else if (z == 1) {
...
z = 2;
}
else if ...
...
}
...
}
Use gopher repellent on funny little man
- steven
- Verpackungs-Wegwerfer
- Beiträge: 64
- Registriert: 26.01.2006, 23:32
- Wohnort: Schweiz
Re: AGS 2.71 Möchte mehrere Objekte nacheinander abspielen
Hallo KhrisMUC,
Wieder mal wusste ich, dass Du es sein wirst. =D>
Ich habs nun zum Schluss ohne [b]else[/b] hingekriegt, wichtig dabei ist allerdings, dass ich bei den folgenden Abfragen mit dem höchsten Wert für z anfange. Das mit dem NOT-Operator vor dem object[2].Animating, darauf, wäre ich nicht selbst gekommen!
if (!object[2].Animating) {
if (z==3) {
z=0; // Zyklus fängt von vorne an
}
if (z==2) {
object[2].SetView(4,9);
object[2].Animate(9,6,eOnce,eNoBlock,eForwards);
z=3;
}
if (z==1) {
object[2].SetView(4,5);
object[2].Animate(5,6,eOnce,eNoBlock,eForwards);
z=2;
}
if (z==0) {
object[2].SetView(4,6);
object[2].Animate(6,6,eOnce,eNoBlock,eForwards);
z=1;
}
}
Gruss
Steven
Wieder mal wusste ich, dass Du es sein wirst. =D>
Ich habs nun zum Schluss ohne [b]else[/b] hingekriegt, wichtig dabei ist allerdings, dass ich bei den folgenden Abfragen mit dem höchsten Wert für z anfange. Das mit dem NOT-Operator vor dem object[2].Animating, darauf, wäre ich nicht selbst gekommen!
if (!object[2].Animating) {
if (z==3) {
z=0; // Zyklus fängt von vorne an
}
if (z==2) {
object[2].SetView(4,9);
object[2].Animate(9,6,eOnce,eNoBlock,eForwards);
z=3;
}
if (z==1) {
object[2].SetView(4,5);
object[2].Animate(5,6,eOnce,eNoBlock,eForwards);
z=2;
}
if (z==0) {
object[2].SetView(4,6);
object[2].Animate(6,6,eOnce,eNoBlock,eForwards);
z=1;
}
}
Gruss
Steven
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: AGS 2.71 Möchte mehrere Objekte nacheinander abspielen
Genau, umdrehen geht auch. Ist allerdings nicht sauber
Man sollte Code immer so verfassen, dass ihn auch Fremde ohne "Vorwissen" erweitern können; in diesem Fall ist es harmlos, aber grundsätzlich gute Praxis.
Statt ! kann man übrigens auchverwenden.
Man sollte Code immer so verfassen, dass ihn auch Fremde ohne "Vorwissen" erweitern können; in diesem Fall ist es harmlos, aber grundsätzlich gute Praxis.
Statt ! kann man übrigens auch
Code: Alles auswählen
if (object[2].Animating == false)
Use gopher repellent on funny little man
- gff
- Profi-Abenteurer
- Beiträge: 802
- Registriert: 09.03.2004, 18:49
- Wohnort: Ge
- Kontaktdaten:
Re: AGS 2.71 Möchte mehrere Objekte nacheinander abspielen
Wäre es möglich daß er tatsächlich der einzige ist der hier noch detailierte Hilfe gibt? Sintrena hat hier schon lange nichts mehr geschrieben...KhrisMUC bleib bitte gesundsteven hat geschrieben:Wieder mal wusste ich, dass Du es sein wirst. =D>