make fade transition hide buttons too

This commit is contained in:
David Rose 2001-11-02 00:58:19 +00:00
parent f7fe745bfd
commit ce21b1d346

View File

@ -2,18 +2,20 @@
from PandaModules import * from PandaModules import *
import Task import Task
# These may be reassigned before the fade or iris transitions are
# actually invoked to change the models that will be used.
IrisModelName = "phase_3/models/misc/iris"
FadeModelName = "phase_3/models/misc/fade"
class Transitions: class Transitions:
def __init__(self, loader): def __init__(self, loader):
self.iris = loader.loadModel("phase_3/models/misc/iris") self.iris = None
self.fade = loader.loadModel("phase_3/models/misc/fade") self.fade = None
self.iris.setPos(0,0,0)
self.fade.setScale(3)
self.irisTaskName = "irisTask" self.irisTaskName = "irisTask"
self.fadeTaskName = "fadeTask" self.fadeTaskName = "fadeTask"
def fadeInLerpDone(self, task): def __fadeInLerpDone(self, task):
# This is a helper function to the fadeIn sequence # This is a helper function to the fadeIn sequence
self.fade.reparentTo(hidden) self.fade.reparentTo(hidden)
return Task.done return Task.done
@ -28,6 +30,7 @@ class Transitions:
""" """
self.noTransitions() self.noTransitions()
self.loadFade()
self.fade.reparentTo(aspect2d, FADE_SORT_INDEX) self.fade.reparentTo(aspect2d, FADE_SORT_INDEX)
if (t == 0): if (t == 0):
@ -40,7 +43,7 @@ class Transitions:
self.fade.lerpColor(0,0,0,1, self.fade.lerpColor(0,0,0,1,
0,0,0,0, 0,0,0,0,
t), t),
Task.Task(self.fadeInLerpDone)) Task.Task(self.__fadeInLerpDone))
# Spawn the sequence # Spawn the sequence
if not block: if not block:
taskMgr.spawnTaskNamed(task, self.fadeTaskName) taskMgr.spawnTaskNamed(task, self.fadeTaskName)
@ -65,6 +68,7 @@ class Transitions:
""" """
self.noTransitions() self.noTransitions()
self.loadFade()
self.fade.reparentTo(aspect2d, FADE_SORT_INDEX) self.fade.reparentTo(aspect2d, FADE_SORT_INDEX)
if (t == 0): if (t == 0):
@ -74,12 +78,12 @@ class Transitions:
# 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(0,0,0,0,
0,0,0,1, 0,0,0,1,
t, task=self.fadeTaskName) t, task=self.fadeTaskName)
else: else:
return self.fade.lerpColor(0,0,0,0, return self.fade.lerpColor(0,0,0,0,
0,0,0,1, 0,0,0,1,
t) t)
def fadeScreen(self, alpha=0.5): def fadeScreen(self, alpha=0.5):
""" """
@ -88,6 +92,7 @@ class Transitions:
a dialog box for instance a dialog box for instance
""" """
self.noTransitions() self.noTransitions()
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(0,0,0,alpha)
@ -114,9 +119,10 @@ class Transitions:
Removes any current fade tasks and parents the fade polygon away Removes any current fade tasks and parents the fade polygon away
""" """
taskMgr.removeTasksNamed(self.fadeTaskName) taskMgr.removeTasksNamed(self.fadeTaskName)
self.fade.reparentTo(hidden) if self.fade != None:
self.fade.reparentTo(hidden)
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
self.iris.reparentTo(hidden) self.iris.reparentTo(hidden)
return Task.done return Task.done
@ -131,6 +137,7 @@ class Transitions:
""" """
self.noTransitions() self.noTransitions()
self.loadIris()
if (t == 0): if (t == 0):
self.iris.reparentTo(hidden) self.iris.reparentTo(hidden)
else: else:
@ -141,7 +148,7 @@ class Transitions:
task = Task.sequence( task = Task.sequence(
self.iris.lerpScale(0.18, 0.18, 0.18, self.iris.lerpScale(0.18, 0.18, 0.18,
t, blendType="noBlend"), t, blendType="noBlend"),
Task.Task(self.irisInLerpDone)) Task.Task(self.__irisInLerpDone))
# Spawn the sequence # Spawn the sequence
if not block: if not block:
taskMgr.spawnTaskNamed(task, self.irisTaskName) taskMgr.spawnTaskNamed(task, self.irisTaskName)
@ -171,6 +178,9 @@ class Transitions:
aspect2d plane until you irisIn or call noIris. aspect2d plane until you irisIn or call noIris.
""" """
self.noTransitions() self.noTransitions()
self.loadIris()
self.loadFade() # we need this to cover up the hole.
if (t == 0): if (t == 0):
self.iris.reparentTo(hidden) self.iris.reparentTo(hidden)
else: else:
@ -211,8 +221,11 @@ class Transitions:
Removes any current iris tasks and parents the iris polygon away Removes any current iris tasks and parents the iris polygon away
""" """
taskMgr.removeTasksNamed(self.irisTaskName) taskMgr.removeTasksNamed(self.irisTaskName)
self.iris.reparentTo(hidden) if self.iris != None:
# Actually we need to remove the fade to, because the iris effect uses it self.iris.reparentTo(hidden)
# Actually we need to remove the fade too,
# because the iris effect uses it.
self.noFade() self.noFade()
@ -222,3 +235,30 @@ class Transitions:
""" """
self.noFade() self.noFade()
self.noIris() self.noIris()
def loadIris(self):
if self.iris == None:
self.iris = loader.loadModel(IrisModelName)
self.iris.setPos(0,0,0)
def loadFade(self):
if self.fade == None:
from DirectGui import *
# We create a DirectFrame for the fade polygon, instead of
# simply loading the polygon model and using it directly,
# so that it will also obscure mouse events for objects
# positioned behind it.
fadeModel = loader.loadModel(FadeModelName)
self.fade = DirectFrame(
parent = hidden,
guiId = 'fade',
relief = None,
image = fadeModel,
image_scale = 3.0,
state = NORMAL,
)
fadeModel.removeNode()