Rotation wenn Partikel ausgestoßen...

Wayan

Mitglied
Hallo und guten Morgen ihr Lieben!

Nach langer Zeit hab ich da auch mal wieder eine Frage...

Ich habe mir ein Geschütz gebaut, nämlich das angehängte.
Ich habe mich endlich einmal ein wenig mit Xpresso beschäftigt und es tatsächlich fertig gebracht, das ich das Geschütz auf ein Ziel ausrichten kann und sogar den Sinn von Benutzerdaten festgestellt :-)

So nun zu meinem Problem.
Wie man sehen kann handelt es sich um ein Gatlinggeschütz mit 2 Rohren, welches über einen Schalter "Feuer" gesteuert wird (dann schießt es :-))
Ich möchte nun allerdings erreichen, das sich bei Aktivierung die Rohre beginnen zu drehen (beschleunigt), und wenn sie eine bestimmte Drehzahl erreicht haben, die Emitter beginnen auszustoßen.
Ich habe noch nicht einmal eine klitzekleine Idee wie ich das realisieren kann, es kann noch nichteinmal Zeitabhängig passieren, denn die Zeit, wann das Geschütz schießt ist noch nicht bekannt.

Vielleicht könnt ihr mir ja weiterhelfen.

Ich wünsche euch noch einen schönen Tag und vielen Dank schonmal
 

Anhänge

  • test2_0008.jpg
    test2_0008.jpg
    50,6 KB · Aufrufe: 21
Ich bin zwar kein Xpresso-Typ, aber denke, dass ich dir Anhaltspunkte für den Lösungsweg geben kann (wenns falsch ist, sorry, aber ich will ja bloß helfen ;) )

- Frame "speichern", wo Feuer aktiviert ist
- dort Rotation 0 Key setzen
- Frame Feuer + x Frames (Beschleunigungszeit) -> Rotation x setzen (musst du ausrechnen, wie hoch die Beschleunigung (Grad/sek²) ist und wie hoch die finale Drehgeschwindigkeit ist)
- ab dem Frame wo volle Beschleunigung ist, Emitter starten und Rotationsgeschwindigkeit zuweisen (+Grad/weiterem Frame)
- das Ganze dann rückwärts, sobald Feuer deaktiviert (Emitter stoppen, Negativbeschleunigung bis Frame Feuer stopp + x Frames (Beschleunigungszeit)
 
Hi!

Anbei eine Möglichkeit über einen "Timer" - einem Benutzerdatum, daß die "vergangenen Frames" mitzählt:
Ein Würfel hat die drei Benutzerdaten: Timer (integer), Dauer (integer) und Start (bool)
Schaltung gliedert sich nun in drei Bereiche:
a) Timer starten: wenn "Start" = true und Timer kleiner der Dauer, dann zähle den Timer hoch -> ab Aktivierung von Start, fährt der Timer von 0->Dauer.
b) Timer stoppen: wenn "Start" = false und Timer größer 0, dann verringere den Timer -> wenn kein Start, dann fährt der Timer auf 0 zurück.
c) Die Interpretation des Timers als Rotation. Für einen Timer von 0-(Dauer-1) wird linear auf die max. Geschwindigkeit interpoliert. Ab Timer = 100 ist diese Geschwindigkeit konstant bei max. Geschwindigkeit. Diese wird jeweils der aktuellen Rotation hinzuaddiert.

Der Emitter bräuchte folglich nur eine Abfrage: Wenn Timer = 100, dann baller los ;)

Liebe Grüße,
Mark.
 

Anhänge

  • startstop.jpg
    startstop.jpg
    85,1 KB · Aufrufe: 27
Mark.....






HEUTE BIST DU MEIN HELD!

Dankeschön, das ist genau das was ich meine... und es funktioniert super... :-) :-)
 
Zurück