From 42a77305379fe84780c7a0bb093e76713e2c799d Mon Sep 17 00:00:00 2001 From: Samir Naik Date: Sat, 7 Apr 2007 21:07:23 +0000 Subject: [PATCH] added getter functions for fadeIn and fadeOut ivals for use in cutscenes --- direct/src/showbase/Transitions.py | 64 ++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 21 deletions(-) diff --git a/direct/src/showbase/Transitions.py b/direct/src/showbase/Transitions.py index 552b2d01b6..ca03ac3bfb 100644 --- a/direct/src/showbase/Transitions.py +++ b/direct/src/showbase/Transitions.py @@ -80,6 +80,42 @@ class Transitions: ) self.fade.setBin('unsorted', 0) + + def getFadeInIval(self, t=0.5, finishIval=None): + """ + Returns an interval without starting it. This is particularly useful in + cutscenes, so when the cutsceneIval is escaped out of we can finish the fade immediately + """ + transitionIval = Sequence(Func(self.noTransitions), + Func(self.loadFade), + Func(self.fade.reparentTo, render2d, FADE_SORT_INDEX), + self.lerpFunc(self.fade, t, + self.alphaOff, + self.alphaOn), + Func(self.fade.detachNode), + name = self.fadeTaskName, + ) + if finishIval: + transitionIval.append(finishIval) + return transitionIval + + def getFadeOutIval(self, t=0.5, finishIval=None): + """ + Create a sequence that lerps the color out, then + parents the fade to hidden + """ + transitionIval = Sequence(Func(self.noTransitions), + Func(self.noFade), + Func(self.fade.reparentTo,render2d,FADE_SORT_INDEX), + self.lerpFunc(self.fade, t, + self.alphaOn, + self.alphaOff), + name = self.fadeTaskName, + ) + if finishIval: + transitionIval.append(finishIval) + return transitionIval + def fadeIn(self, t=0.5, finishIval=None): """ Play a fade in transition over t seconds. @@ -87,23 +123,15 @@ class Transitions: from black to transparent. When the color lerp is finished, it parents the fade polygon to hidden. """ - self.noTransitions() - self.loadFade() if (t == 0): # Fade in immediately with no lerp + self.noTransitions() + self.loadFade() self.fade.detachNode() else: # Create a sequence that lerps the color out, then # parents the fade to hidden - self.fade.reparentTo(render2d, FADE_SORT_INDEX) - self.transitionIval = Sequence(self.lerpFunc(self.fade, t, - self.alphaOff, - self.alphaOn), - Func(self.fade.detachNode), - name = self.fadeTaskName, - ) - if finishIval: - self.transitionIval.append(finishIval) + self.transitionIval = self.getFadeInIval(t, finishIval) self.transitionIval.start() def fadeOut(self, t=0.5, finishIval=None): @@ -115,22 +143,16 @@ class Transitions: fadeIn or call noFade. lerp """ - self.noTransitions() - self.loadFade() - self.fade.reparentTo(render2d, FADE_SORT_INDEX) if (t == 0): # Fade out immediately with no lerp + self.noTransitions() + self.loadFade() + self.fade.reparentTo(render2d, FADE_SORT_INDEX) self.fade.setColor(self.alphaOn) else: # Create a sequence that lerps the color out, then # parents the fade to hidden - self.transitionIval = Sequence(self.lerpFunc(self.fade, t, - self.alphaOn, - self.alphaOff), - name = self.fadeTaskName, - ) - if finishIval: - self.transitionIval.append(finishIval) + self.transitionIval = self.getFadeOutIval(t,finishIval) self.transitionIval.start() def fadeOutActive(self):