Code: Select all
# Controls the movement of the image according to the mouse position using layers
init 800 python:
class MouseParallax(renpy.Displayable):
def __init__(self,layer_info):
super(renpy.Displayable,self).__init__()
self.xoffset,self.yoffset=0.0,0.0
self.sort_layer=sorted(layer_info,reverse=True)
cflayer=[]
masteryet=False
for m,n in self.sort_layer:
if(not masteryet)and(m<0):
cflayer.append("master")
masteryet=True
cflayer.append(n)
if not masteryet:
cflayer.append("master")
cflayer.extend(["transient","screens","overlay"])
config.layers=cflayer
config.overlay_functions.append(self.overlay)
return
def render(self,width,height,st,at):
return renpy.Render(width,height)
def parallax(self,m):
def trans(d,st,at):
d.xoffset,d.yoffset=(int)(m*self.xoffset),0
return 0
return Transform(function=trans)
def overlay(self):
ui.add(self)
for m,n in self.sort_layer:
renpy.layer_at_list([self.parallax(m)],n)
return
def event(self,ev,x,y,st):
import pygame
if ev.type==pygame.MOUSEMOTION:
self.xoffset,self.yoffset=((float)(x)/(config.screen_width))-0.5,((float)(y)/(config.screen_height))-0.5
return
MouseParallax([(100,"farback"),(50,"back"),(-80,"front"),(-280,"ontop")])
#screens
screen buttons:
zorder 1
vbox xalign 0.5 yalign 0.5:
imagebutton auto "monster_%s.png" action ShowMenu('save') focus_mask True
# The game starts here.
label start:
show bg
show screen buttons
show zei onlayer ontop