added getter functions for fadeIn and fadeOut ivals for use in cutscenes

This commit is contained in:
Samir Naik 2007-04-07 21:07:23 +00:00
parent 786af32d44
commit 42a7730537

View File

@ -80,6 +80,42 @@ class Transitions:
) )
self.fade.setBin('unsorted', 0) 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): def fadeIn(self, t=0.5, finishIval=None):
""" """
Play a fade in transition over t seconds. 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 from black to transparent. When the color lerp is finished, it
parents the fade polygon to hidden. parents the fade polygon to hidden.
""" """
self.noTransitions()
self.loadFade()
if (t == 0): if (t == 0):
# Fade in immediately with no lerp # Fade in immediately with no lerp
self.noTransitions()
self.loadFade()
self.fade.detachNode() self.fade.detachNode()
else: else:
# Create a sequence that lerps the color out, then # Create a sequence that lerps the color out, then
# parents the fade to hidden # parents the fade to hidden
self.fade.reparentTo(render2d, FADE_SORT_INDEX) self.transitionIval = self.getFadeInIval(t, finishIval)
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.start() self.transitionIval.start()
def fadeOut(self, t=0.5, finishIval=None): def fadeOut(self, t=0.5, finishIval=None):
@ -115,22 +143,16 @@ class Transitions:
fadeIn or call noFade. fadeIn or call noFade.
lerp lerp
""" """
if (t == 0):
# Fade out immediately with no lerp
self.noTransitions() self.noTransitions()
self.loadFade() self.loadFade()
self.fade.reparentTo(render2d, FADE_SORT_INDEX) self.fade.reparentTo(render2d, FADE_SORT_INDEX)
if (t == 0):
# Fade out immediately with no lerp
self.fade.setColor(self.alphaOn) self.fade.setColor(self.alphaOn)
else: else:
# Create a sequence that lerps the color out, then # Create a sequence that lerps the color out, then
# parents the fade to hidden # parents the fade to hidden
self.transitionIval = Sequence(self.lerpFunc(self.fade, t, self.transitionIval = self.getFadeOutIval(t,finishIval)
self.alphaOn,
self.alphaOff),
name = self.fadeTaskName,
)
if finishIval:
self.transitionIval.append(finishIval)
self.transitionIval.start() self.transitionIval.start()
def fadeOutActive(self): def fadeOutActive(self):