Allow ability to specify fade color

This commit is contained in:
Mark Mine 2004-10-11 06:41:35 +00:00
parent e62c5be544
commit d0b48e81b8

View File

@ -13,6 +13,7 @@ class Transitions:
def __init__(self, loader): def __init__(self, loader):
self.iris = None self.iris = None
self.fade = None self.fade = None
self.fadeColor = Vec3(0)
self.irisTaskName = "irisTask" self.irisTaskName = "irisTask"
self.fadeTaskName = "fadeTask" self.fadeTaskName = "fadeTask"
@ -41,9 +42,12 @@ class Transitions:
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
r = self.fadeColor[0]
g = self.fadeColor[1]
b = self.fadeColor[2]
task = Task.sequence( task = Task.sequence(
self.fade.lerpColor(0,0,0,1, self.fade.lerpColor(r,g,b,1,
0,0,0,0, r,g,b,0,
t), t),
Task.Task(self.__fadeInLerpDone)) Task.Task(self.__fadeInLerpDone))
# Spawn the sequence # Spawn the sequence
@ -73,18 +77,21 @@ class Transitions:
self.loadFade() self.loadFade()
self.fade.reparentTo(aspect2d, FADE_SORT_INDEX) self.fade.reparentTo(aspect2d, FADE_SORT_INDEX)
r = self.fadeColor[0]
g = self.fadeColor[1]
b = self.fadeColor[2]
if (t == 0): if (t == 0):
# Fade out immediately with no lerp # Fade out immediately with no lerp
self.fade.setColor(0,0,0,1) self.fade.setColor(r,g,b,1)
else: else:
# Spawn a lerp of the color from no alpha to full alpha # Spawn a lerp of the color from no alpha to full alpha
if not block: if not block:
self.fade.lerpColor(0,0,0,0, self.fade.lerpColor(r,g,b,0,
0,0,0,1, r,g,b,1,
t, task=self.fadeTaskName) t, task=self.fadeTaskName)
else: else:
return self.fade.lerpColor(0,0,0,0, return self.fade.lerpColor(r,g,b,0,
0,0,0,1, r,g,b,1,
t) t)
def fadeScreen(self, alpha=0.5): def fadeScreen(self, alpha=0.5):
@ -96,7 +103,11 @@ class Transitions:
self.noTransitions() self.noTransitions()
self.loadFade() self.loadFade()
self.fade.reparentTo(aspect2d, FADE_SORT_INDEX) self.fade.reparentTo(aspect2d, FADE_SORT_INDEX)
self.fade.setColor(0,0,0,alpha)
self.fade.setColor(self.fadeColor[0],
self.fadeColor[1],
self.fadeColor[2],
alpha)
def fadeScreenColor(self, color): def fadeScreenColor(self, color):
""" """
@ -107,7 +118,7 @@ class Transitions:
self.noTransitions() self.noTransitions()
self.loadFade() self.loadFade()
self.fade.reparentTo(aspect2d, FADE_SORT_INDEX) self.fade.reparentTo(aspect2d, FADE_SORT_INDEX)
self.fade.setColor(color) self.fade.setColor(color)
def fadeOutTask(self, task, time=0.3, noFade=1): def fadeOutTask(self, task, time=0.3, noFade=1):
""" """
@ -134,6 +145,9 @@ class Transitions:
taskMgr.remove(self.fadeTaskName) taskMgr.remove(self.fadeTaskName)
if self.fade != None: if self.fade != None:
self.fade.reparentTo(hidden) self.fade.reparentTo(hidden)
def setFadeColor(self, r, g, b):
self.fadeColor.set(r,g,b)
def __irisInLerpDone(self, task): def __irisInLerpDone(self, task):
# This is a helper function to the fadeIn sequence # This is a helper function to the fadeIn sequence