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