Browse Source

Allow ability to specify fade color

Mark Mine 21 years ago
parent
commit
d0b48e81b8
1 changed files with 23 additions and 9 deletions
  1. 23 9
      direct/src/showbase/Transitions.py

+ 23 - 9
direct/src/showbase/Transitions.py

@@ -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,
-                                    0,0,0,0,
+                self.fade.lerpColor(r,g,b,1,
+                                    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,
-                                    0,0,0,1,
+                self.fade.lerpColor(r,g,b,0,
+                                    r,g,b,1,
                                     t, task=self.fadeTaskName)
                                     t, task=self.fadeTaskName)
             else:
             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)
                                            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