diff --git a/direct/src/showbase/Transitions.py b/direct/src/showbase/Transitions.py index 4d544f8f97..b47a2fb586 100644 --- a/direct/src/showbase/Transitions.py +++ b/direct/src/showbase/Transitions.py @@ -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