Code: Select all
init python:
class TransitionShowingSwitch(renpy.Displayable):
def __init__(self, transition, *args, **kwargs):
super(TransitionShowingSwitch, self).__init__(**kwargs)
self.layer = kwargs.pop('layer', 'master')
self.transition = transition
self.d = zip(args[0::2], args[1::2])
self.time_reset = True
self.old_d = None
self.current_d = None
self.ta = None
def render(self, width, height, st, at):
if self.time_reset:
self.time_reset = False
self.st = st
self.at = at
return renpy.render(self.ta, width, height, st-self.st, at-self.at)
def per_interact(self):
for name, d in self.d:
if name is None or renpy.showing(name, layer=self.layer):
change_to = d
break
if change_to is not self.current_d:
self.time_reset = True
self.old_d = self.current_d
self.current_d = change_to
if self.old_d is None:
self.old_d = self.current_d
self.ta = anim.TransitionAnimation(self.old_d, 0.00, self.transition, self.current_d)
renpy.redraw(self, 0)
def visit(self):
return [ self.ta ]
This should be useful for those people (e.g. SelLi) that want fading side images.
EDIT: If you want to use this with alpha-transparent images, use Dissolve(duration, alpha=True) as the transition.