From d0b48e81b85fc0762d3d2c379bad7ea7290669cf Mon Sep 17 00:00:00 2001 From: Mark Mine Date: Mon, 11 Oct 2004 06:41:35 +0000 Subject: [PATCH] Allow ability to specify fade color --- direct/src/showbase/Transitions.py | 32 +++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) 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