mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
support setT() while interval is playing
This commit is contained in:
parent
2d221eadb2
commit
1e076dadd1
@ -62,8 +62,19 @@ class Interval(DirectObject):
|
|||||||
state = self.getState()
|
state = self.getState()
|
||||||
if state == CInterval.SInitial:
|
if state == CInterval.SInitial:
|
||||||
self.privInitialize(t)
|
self.privInitialize(t)
|
||||||
|
if self.isPlaying():
|
||||||
|
self.setupResume()
|
||||||
elif state == CInterval.SFinal:
|
elif state == CInterval.SFinal:
|
||||||
self.privReverseInitialize(t)
|
self.privReverseInitialize(t)
|
||||||
|
if self.isPlaying():
|
||||||
|
self.setupResume()
|
||||||
|
elif state == CInterval.SStarted:
|
||||||
|
# Support modifying t while the interval is playing. We
|
||||||
|
# assume is_playing() will be true in this state.
|
||||||
|
assert(self.isPlaying())
|
||||||
|
self.privInterrupt()
|
||||||
|
self.privStep(t)
|
||||||
|
self.setupResume()
|
||||||
else:
|
else:
|
||||||
self.privStep(t)
|
self.privStep(t)
|
||||||
self.privPostEvent()
|
self.privPostEvent()
|
||||||
|
@ -70,10 +70,25 @@ set_t(double t) {
|
|||||||
switch (get_state()) {
|
switch (get_state()) {
|
||||||
case S_initial:
|
case S_initial:
|
||||||
priv_initialize(t);
|
priv_initialize(t);
|
||||||
|
if (is_playing()) {
|
||||||
|
setup_resume();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case S_final:
|
case S_final:
|
||||||
priv_reverse_initialize(t);
|
priv_reverse_initialize(t);
|
||||||
|
if (is_playing()) {
|
||||||
|
setup_resume();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case S_started:
|
||||||
|
// Support modifying t while the interval is playing. We assume
|
||||||
|
// is_playing() will be true in this state.
|
||||||
|
nassertv(is_playing());
|
||||||
|
priv_interrupt();
|
||||||
|
priv_step(t);
|
||||||
|
setup_resume();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user