forked from fofix/fofix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CustomRMLayers.py
52 lines (38 loc) · 1.64 KB
/
CustomRMLayers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from Rockmeter import *
class CoOpMeter(Group):
def __init__(self, stage, section):
super(CoOpMeter, self).__init__(stage, section)
self.ySpacingExpr = self.getexpr("yspacing", "0.0")
self.ySpacing = 0.0
self.condition = "True"
print self.layers.values()
def updateLayer(self, playerNum):
super(CoOpMeter, self).updateLayer(playerNum)
self.ySpacing = eval(self.ySpacingExpr)
def render(self, visibility, playerNum):
w, h, = self.engine.view.geometry[2:4]
self.updateLayer(playerNum)
for effect in self.effects:
effect.update()
self.engine.view.setViewportHalf(1,0)
i = playerNum
scale = (.75*(len(self.stage.scene.playerList)/2))
for layer in self.layers.values():
layer.updateLayer(playerNum)
for effect in layer.effects:
effect.update()
layer.position = [p*scale for p in layer.position]
layer.scale = [s*scale for s in layer.scale]
if isinstance(layer, FontLayer):
layer.position = [layer.position[0] + (self.position[0]/w), layer.position[1] - (self.position[1]/h)*.75]
layer.position[1] -= (self.ySpacing*scale/h)*.75*(i/2)
else:
layer.position = [layer.position[n] + self.position[n] for n in range(2)]
layer.position[1] -= (self.ySpacing*scale/h)*(i/2)
#flips across screen for every other player
if i % 2 == 1:
layer.position[0] = w - layer.position[0]
layer.scale[0] *= -1
layer.angle *= -1
#layer.scale = [s/(2.0*(len(self.stage.scene.playerList)/2)) for s in layer.scale]
layer.render(visibility, playerNum)