]> Untitled Git - lightcycles-love.git/blob - scene.lua
Extracted scene to separate file. Added second player
[lightcycles-love.git] / scene.lua
1 -- main
2
3 require 'vec2'
4 require 'player'
5
6
7 scene = {}
8 scene.width = love.graphics.getWidth()
9 scene.height = love.graphics.getHeight()
10 scene.players = {}
11 scene.grid = {}
12 scene.grid.bgcolor = {0.2, 0.2, 0.5}
13 scene.grid.linecolor = {0.3, 0.3, 0.6}
14 scene.grid.delta = 50
15
16 -- load
17 function scene:load()
18     table.insert(scene.players, Player:new({
19         position=vec2:new(100,100),
20         vector=Player.vectors.right,
21         path={},
22         }))
23
24     table.insert(scene.players, Player:new({
25         position=vec2:new(self.width-100,self.height-100),
26         vector=Player.vectors.left,
27         path={},
28         color={255, 255, 0},
29         keys={
30             up='up',
31             down='down',
32             left='left',
33             right='right',
34             }
35         }))
36 end
37
38 -- draw
39 function scene:drawGrid()
40     love.graphics.setBackgroundColor(self.grid.bgcolor)
41     love.graphics.setColor(self.grid.linecolor)
42
43     for x=0,self.width,self.grid.delta do
44         love.graphics.line(x, 0, x, self.height)
45     end
46     for y=0,self.height,self.grid.delta do
47         love.graphics.line(0, y, self.width, y)
48     end
49 end
50
51 function scene:drawPlayers()
52     for _,player in pairs(self.players) do
53         player:draw()
54     end
55 end
56
57 function scene:draw()
58     self:drawGrid()
59     self:drawPlayers()
60 end
61
62 -- update
63 function scene:updatePlayers(dt)
64     for _,player in pairs(self.players) do
65         player:update(dt)
66     end
67 end
68
69 function scene:update(dt)
70     self:updatePlayers(dt)
71 end
72
73 -- quit
74 function scene:quit()
75     for i,player in pairs(self.players) do
76         print('Player '..i..' generated '.. #player.path / 2 .. ' path points')
77     end
78 end