bzr branch
http://9ix.org/bzr/ld26
12
by Josh C
area transitions |
1 |
Transition = Group:extend { |
2 |
visible = false, |
|
3 |
onNew = function(self) |
|
16
by Josh C
fade in |
4 |
local t = self |
5 |
-- NOTE: X/Y will fail if you init Transition before Player! |
|
6 |
box = Fill:new{x = self.x, y = self.y, |
|
7 |
height = self.height or the.player.height, |
|
8 |
width = self.width or the.player.width, |
|
9 |
fill = {0, 255, 0}, |
|
10 |
onCollide = function(self, other, xOl, yOl) |
|
11 |
-- (sanity check) |
|
12 |
if other == the.player then |
|
13 |
--print("Sending to "..t.target) |
|
14 |
||
17
by Josh C
fade out |
15 |
the.player.active = false |
16 |
the.app.view:fade({0,0,0}):andThen(function() |
|
17 |
the.app.view = GameView:new{level = t.target} |
|
16
by Josh C
fade in |
18 |
|
17
by Josh C
fade out |
19 |
if t.targetX or t.targetY then |
20 |
the.player.x = t.targetX |
|
21 |
the.player.y = t.targetY |
|
22 |
end |
|
23 |
end) |
|
16
by Josh C
fade in |
24 |
else |
25 |
print("Colliding with: "..other) |
|
26 |
end |
|
27 |
end |
|
28 |
} |
|
29 |
self:add(box) |
|
30 |
self:add(Text:new{x = self.x, y = self.y, |
|
31 |
text = "T" |
|
32 |
}) |
|
33 |
||
34 |
-- make sure collision doesn't think group is a sprite |
|
35 |
self.x, self.y, self.width, self.height = nil, nil, nil, nil |
|
36 |
end, |
|
12
by Josh C
area transitions |
37 |
onUpdate = function(self, dt) |
38 |
self.visible = DEBUG and the.console.visible |
|
39 |
end |
|
40 |
} |