bzr branch
http://9ix.org/bzr/ld28
4
by Josh C
more clones, no null movement |
1 |
local dirs = {'left', 'right', 'up', 'down'} |
2 |
||
2
by Josh C
basic delayed movement |
3 |
Player = Fill:extend { |
4 |
fill = {255,0,0}, |
|
5 |
width = 16, height = 16, |
|
6 |
queue = deque.new(), |
|
7 |
onNew = function(self) |
|
3
by Josh C
add a couple other clones that move randomly |
8 |
for _ = 1, 2 do |
4
by Josh C
more clones, no null movement |
9 |
self.queue:push_right(dirs[math.random(1,4)]) |
2
by Josh C
basic delayed movement |
10 |
end |
11 |
end, |
|
3
by Josh C
add a couple other clones that move randomly |
12 |
onUpdate = function(self) |
13 |
local keys = {the.keys:allJustPressed()} |
|
14 |
if keys[1] then |
|
4
by Josh C
more clones, no null movement |
15 |
local dirKey = false |
16 |
for _, dir in ipairs(dirs) do |
|
17 |
if dir == keys[1] then |
|
18 |
dirKey = true |
|
19 |
end |
|
20 |
end |
|
21 |
||
22 |
if dirKey then |
|
23 |
--print('key: ' .. keys[1]) |
|
24 |
self.queue:push_right(keys[1]) |
|
25 |
||
26 |
local inst = self.queue:pop_left() |
|
27 |
if inst == 'left' then |
|
28 |
self.x = self.x - self.width |
|
29 |
elseif inst == 'right' then |
|
30 |
self.x = self.x + self.width |
|
31 |
elseif inst == 'up' then |
|
32 |
self.y = self.y - self.height |
|
33 |
elseif inst == 'down' then |
|
34 |
self.y = self.y + self.height |
|
35 |
end |
|
36 |
||
37 |
self.moved = true |
|
38 |
end |
|
3
by Josh C
add a couple other clones that move randomly |
39 |
end |
40 |
end |
|
2
by Josh C
basic delayed movement |
41 |
} |