practice/love/mike/lib/keys.lua

64 lines
1.4 KiB
Lua
Raw Normal View History

require "lib/GameState"
2017-07-05 07:11:51 -07:00
QUIT_KEY = "q"
SAVE_KEY = "s"
LOAD_KEY = "l"
HALF_SPEED = "lshift"
MOVE_RIGHT = "right"
MOVE_LEFT = "left"
SAVE_FILE = "testing.lua"
2017-07-05 07:11:51 -07:00
function love.keyreleased(key)
if key == QUIT_KEY then
2017-07-05 07:11:51 -07:00
love.event.quit()
-- save
elseif key == SAVE_KEY then
--love.filesystem.write(saveFile, Tserial.pack(player, false, true))
love.filesystem.write(SAVE_FILE, GameState.save(actors, "actors"))
2017-07-05 07:11:51 -07:00
-- Load
elseif key == LOAD_KEY then
2017-07-05 07:11:51 -07:00
save_exists = love.filesystem.exists(SAVE_FILE)
2017-07-05 07:11:51 -07:00
if save_exists then
--player = Tserial.unpack( love.filesystem.read( saveFile ) )
GameState.load(SAVE_FILE)
2017-07-05 07:11:51 -07:00
end
end
end
function half_speed(object_speed)
if love.keyboard.isDown(HALF_SPEED) then
return object_speed/2
else return object_speed
end
end
2017-07-25 18:41:25 -07:00
function check_keys(object, screen, dt)
2017-07-05 07:11:51 -07:00
local newObject = {}
newObject.x = object.x
newObject.y = object.y
newObject.width = object.width
newObject.height = object.height
newObject.speed = object.speed
if love.keyboard.isDown(MOVE_RIGHT) then
2017-07-25 18:41:25 -07:00
newObject.x = newObject.x + half_speed(newObject.speed * dt)
2017-07-05 07:11:51 -07:00
end
if love.keyboard.isDown(MOVE_LEFT) then
2017-07-25 18:41:25 -07:00
newObject.x = newObject.x - half_speed(newObject.speed * dt)
2017-07-05 07:11:51 -07:00
end
if screen_col_detect(newObject, screen) then
2017-07-05 07:11:51 -07:00
return newObject
else
return object
end
end
--Inspired by https://love2d.org/wiki/BoundingBox.lua
--Returns true if boxes overlap