Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Newbies => Thema gestartet von: steve-o-mat am 12. September 2007, 15:59:30

Titel: Intervalle einer Animation bestimmen
Beitrag von: steve-o-mat am 12. September 2007, 15:59:30
Heyho.
Folgendes Problem hab ich diesmal:

Ich habe für einen Gegenstand eine regelmäßig wiederkehrende Animation gemacht. Was mich daran stört ist, dass die Animation zu schnell wieder erscheint.
Ich habe schon alle Frames eines Views genutzt, um sie in die Länge zu ziehen. (also mit etlichen Standbildern und dann zum Schluss die Animationsbilder im View, damit die quasi-Animation länger ist). Leider hat mir das nicht gereicht, da pro View ja nicht unzählige Frames verwendet werden können. Das Delay kann ich nicht weiter verstellen, da sonst die Animation rukelt.

Deshalb meine Frage:
Kann man es script-technisch lösen, dass zum Beispiel diese Animation nur z.B. einmal in der Minute erscheint?
Die Hilfe hat mir leider nicht wirklich was ausgespuckt, vielleicht hab ich ja auch falsch gesucht. Wäre für jede Hilfe dankbar.  ;)
Titel: Re: Intervalle einer Animation bestimmen
Beitrag von: KhrisMUC am 12. September 2007, 16:10:29
Mit Timern geht das ganz easy:

//rep_ex

  if (IsTimerExpired(1)) {
    bla.Animate(..., eNoBlock);
    SetTimer(1, 40*60);  // eine Minute Pause
  }

Jetzt musst Du das Ganze nur mit einem SetTimer(1, 10); in after/before fadein starten, fertig ist das Mondgesicht.
Titel: Re: Intervalle einer Animation bestimmen
Beitrag von: Jefffan am 12. September 2007, 16:34:16
Den Standbildern kannst du bei SPD auch noch einen Wert zuweisen, damit diese länger erscheinen.
Titel: Re: Intervalle einer Animation bestimmen
Beitrag von: steve-o-mat am 12. September 2007, 17:10:34
Ahh, okay. Vielen Dank für die schnelle Hilfe.  :D

Bei  SetTimer(1,40*60);  ist dann die 40 die Anzahl der Loops (40Loops=1s) gemeint, ne!?

Wenn die Animation nicht durch eine bestimmte Aktion hervorgerufen wird, sondern die ganze Zeit, während der Spieler im Raum ist, stattfinden soll, dann muss ich doch die if-Abfrage auch bei before/after fadein reinscripten, unter dem SetTimer(1,10);  Oder nicht?
Titel: Re: Intervalle einer Animation bestimmen
Beitrag von: Timer am 12. September 2007, 17:26:41
Stimmt, du musst den Timer jedesmal, wenn du ins Zimmer kommst, erst einmal stellen. (Sonst würde die Bedingung "IsTimerExpired" ja nie eintreffen... ;)
Titel: Re: Intervalle einer Animation bestimmen
Beitrag von: Bòógieman am 12. September 2007, 17:49:35
warum so kompliziert?

spar dir den timer und verwende die lösung die jefffan dir vorgeschlagen hat
mach einfach im view-editor ganz hinten das bild, dass du länger sehen willst und setzte den SPD wert auf die gewünschte wartezeit, fertig (http://www.maniac-mansion-mania.de/forum/Smileys/classic/rolleyes.gif)
Titel: Re: Intervalle einer Animation bestimmen
Beitrag von: Timer am 12. September 2007, 18:32:23
(http://img520.imageshack.us/img520/2181/67492476ya7.png) (http://imageshack.us)
In deinem Fall musst du es natürlich auf 2400 stellen.
Noch irgendwelche Unklarheiten? ;)

(Sorry, macht halt Spaß, zu erklären ;D)