/ld28

To get this branch, use:
bzr branch http://9ix.org/bzr/ld28
2 by Josh C
basic delayed movement
1
STRICT = true
2
DEBUG = true
3
4
require 'zoetrope'
5
deque = require 'deque'
10 by Josh C
collide w/ the map
6
--inspect = require 'inspect'
7
require 'sprite'
2 by Josh C
basic delayed movement
8
10 by Josh C
collide w/ the map
9
require 'util'
2 by Josh C
basic delayed movement
10
require 'version'
11
require 'player'
7 by Josh C
rename NotPlayer to Clone cuz they're clones, and it's way too early
12
require 'clone'
2 by Josh C
basic delayed movement
13
14
GameView = View:extend {
15
   onNew = function (self)
10 by Josh C
collide w/ the map
16
              self:loadLayers('data/map.lua')
2 by Josh C
basic delayed movement
17
13 by Josh C
align to grid
18
              local tw = math.floor(the.app.width / 16)
19
              local th = math.floor(the.app.height / 16)
20
3 by Josh C
add a couple other clones that move randomly
21
              the.player = Player:new{
13 by Josh C
align to grid
22
                 x = math.random(2, tw-2) * 16,
23
                 y = math.random(2, th-2) * 16
3 by Josh C
add a couple other clones that move randomly
24
              }
2 by Josh C
basic delayed movement
25
              self:add(the.player)
3 by Josh C
add a couple other clones that move randomly
26
7 by Josh C
rename NotPlayer to Clone cuz they're clones, and it's way too early
27
              the.clones = Group:new()
28
              self:add(the.clones)
14 by Josh C
16 is a more fun number. :D
29
              for _ = 1, 15 do
7 by Josh C
rename NotPlayer to Clone cuz they're clones, and it's way too early
30
                 the.clones:add(Clone:new {
13 by Josh C
align to grid
31
                                   x = math.random(2, tw-2) * 16,
32
                                   y = math.random(2, th-2) * 16
33
                                })
3 by Josh C
add a couple other clones that move randomly
34
              end
2 by Josh C
basic delayed movement
35
           end,
36
   onUpdate = function(self, dt)
3 by Josh C
add a couple other clones that move randomly
37
                 if the.player.moved then
38
                    -- this should encapsulate
7 by Josh C
rename NotPlayer to Clone cuz they're clones, and it's way too early
39
                    for _, np in ipairs(the.clones.sprites) do
3 by Josh C
add a couple other clones that move randomly
40
                       np:doMove()
41
                    end
42
10 by Josh C
collide w/ the map
43
                    the.clones:collide(self.map)
44
                    the.player:collide(self.map)
45
9 by Josh C
collision
46
                    the.clones:collide()
47
                    the.clones:collide(the.player)
48
3 by Josh C
add a couple other clones that move randomly
49
                    the.player.moved = false
50
                 end
51
2 by Josh C
basic delayed movement
52
                 if the.keys:justPressed('escape', 'q') then
53
                    the.app:quit()
54
                 end
55
              end,
56
}
57
58
the.app = App:new {
3 by Josh C
add a couple other clones that move randomly
59
   name = "LD28",
2 by Josh C
basic delayed movement
60
   onRun = function (self)
61
              print('Version: ' .. VERSION)
62
63
              self.view = GameView:new()
64
65
              if DEBUG then
66
                 self.console:watch('VERSION', 'VERSION')
67
68
                 -- back off that dark overlay a bit
69
                 self.console.fill.fill[4] = 75
70
              end
71
           end,
8 by Josh C
screenshots
72
   onUpdate = function (self, dt)
73
                 if the.keys:justPressed('f1') then
74
                    local ss = love.graphics.newScreenshot()
75
                    ss:encode('screenshot-' ..love.timer.getTime()..'.png')
76
                 end
77
              end
2 by Josh C
basic delayed movement
78
}