7
image = 'data/player.png',
8
onNew = function (self)
10
self.maxVelocity.y = 400
12
onStartFrame = function (self)
13
-- this is all in startframe so it happens before
14
-- physics calc at beginning of update
17
self.acceleration.y = 800
19
if the.keys:pressed('left') then
20
self.velocity.x = -200
21
elseif the.keys:pressed('right') then
25
if the.keys:justPressed('up') then
26
self.velocity.y = -400
29
onUpdate = function (self)
30
-- this is called after physics, so this makes sense here
31
the.view.map:subdisplace(self)
5
__ = require 'underscore'
6
--inspect = require 'inspect'
17
elseif dir == 'y' then
20
if STRICT then error('dir '..dir) end
35
25
GameView = View:extend {
37
27
self:loadLayers('data/map.lua')
38
28
self.focus = the.player
39
29
self:clampTo(self.map)
31
the.recorder = Recorder:new{mousePosInterval = 9999}
32
the.app.meta:add(the.recorder)
33
if the.app.record then
34
the.recorder:startRecording()
35
elseif the.app.playback then
36
local storage = Storage:new{filename = 'record.lua'}
38
--print(inspect(storage.data))
39
the.recorder.record = storage.data
40
the.recorder:startPlaying()
43
onUpdate = function (self)
44
--print('drawTook: ', the.drawTook)
46
--the.player:collide(self.map)
47
--self.map:collide(the.player)
49
-- draw = function (self, x, y)
50
-- View.draw(self, x, y)
52
-- love.graphics.print('FPS:' .. love.timer.getFPS(), 20, 20)
43
56
the.app = App:new {
44
58
onRun = function (self)
45
59
self.view = GameView:new()
61
self.console:watch('onGround', 'the.player.onGround')
62
self.console:watch('onWall', 'the.player.onWall')
63
self.console:watch('updateTook', 'the.updateTook')
64
self.console:watch('drawTook', 'the.drawTook')
65
self.console:watch('recorder state', 'the.recorder.state')
68
--the.profiler = newProfiler('time', 2000)
69
--the.profiler = newProfiler()
70
--the.profiler:start()
47
72
onUpdate = function (self, dt)
48
73
if the.keys:justPressed('escape') then
76
local outfile = io.open( "profile.txt", "w+" )
77
the.profiler:report( outfile )
82
if not love.filesystem.remove('record.lua') then
83
print('could not remove record.lua')
85
local storage = Storage:new{
86
data = the.recorder.record,
87
filename = 'record.lua'
90
--print(inspect(the.recorder.record))
b'\\ No newline at end of file'
96
update = function (self, dt)
97
the.updateStart = love.timer.getMicroTime()
99
if the.updateStart then
100
the.updateTook = love.timer.getMicroTime() - the.updateStart
105
function love.load (arg)
106
opts = getopt(arg, '')
108
the.app.playback = true
109
the.app.record = false
110
elseif opts['r'] then
111
the.app.record = true
b'\\ No newline at end of file'