139 lines
3.0 KiB
Lua
139 lines
3.0 KiB
Lua
function love.load()
|
|
do_pause = false
|
|
debug = false
|
|
debug_collision = false
|
|
textScale = 1
|
|
fps_count = 0
|
|
fps_second = 0
|
|
fps_draw = 0
|
|
fps_total = 0
|
|
love.graphics.setColor(1,1,1)
|
|
love.keyboard.setKeyRepeat(true)
|
|
love.graphics.setDefaultFilter("nearest") -- good pixel
|
|
game = {
|
|
scale = 2,
|
|
width = love.graphics.getWidth(),
|
|
height = love.graphics.getHeight(),
|
|
paused = false
|
|
}
|
|
require "data/scripts"
|
|
Camera.width = game.width
|
|
Camera.height = game.height
|
|
levelList = {"level1","2","3","ewae","tileset"}
|
|
levelNum = 1
|
|
currLevel = levelList[levelNum]
|
|
LevelLoadTiles()
|
|
main_Player = Player:New(1220,220)
|
|
LoadedEntities = {}
|
|
table.insert(LoadedEntities,main_Player)
|
|
table.insert(LoadedEntities,Kupo:New(450,100))
|
|
table.insert(LoadedEntities,Kupo:New(250,150))
|
|
main_Player.sprite = love.graphics.newImage("assets/characters/nancy/idle1.png")
|
|
main_Player:LoadAnimation(animation.nancy.idle)
|
|
end
|
|
|
|
function love.update(dt)
|
|
-- fps counter
|
|
if fps_second >= 1 then
|
|
fps_second = fps_second - 1
|
|
fps_draw = fps_count
|
|
fps_count = 0
|
|
fps_total = fps_total + 1
|
|
end
|
|
fps_second = fps_second + dt
|
|
fps_count = fps_count + 1
|
|
current_dt = dt
|
|
|
|
-- saveproof to game resize
|
|
game.width = love.graphics.getWidth()
|
|
game.height = love.graphics.getHeight()
|
|
Camera.height = game.height
|
|
Camera.width = game.width
|
|
-- GAME STEP
|
|
if not do_pause then
|
|
SetCollisionFlags(main_Player)
|
|
for _, enty in pairs(LoadedEntities) do
|
|
enty:Smart()
|
|
enty:DoPhysics()
|
|
end
|
|
AnimateTiles()
|
|
Camera:CenterAt(main_Player.pos.x, main_Player.pos.y,LevelInfo.Width,LevelInfo.Height)
|
|
--camera:ScreenAt(main_Player.pos.x, main_Player.pos.y,game.width,game.height)
|
|
end
|
|
end
|
|
|
|
function love.keypressed(key)
|
|
|
|
if key == "escape" then
|
|
if do_pause then
|
|
do_pause = false
|
|
else
|
|
pausepage = 1
|
|
do_pause = true
|
|
end
|
|
end
|
|
|
|
if key == "f1" then
|
|
if debug then
|
|
debug = false
|
|
debug_collision = true
|
|
elseif debug_collision then
|
|
debug_collision = false
|
|
else
|
|
debug = true
|
|
end
|
|
end
|
|
|
|
if key == "f2" then
|
|
main_Player.pos.x, main_Player.pos.y = 0,-0.1
|
|
end
|
|
|
|
if key == "f3" then
|
|
LoadLevel()
|
|
end
|
|
|
|
if key == "f5" then
|
|
levelNum = levelNum + 1
|
|
if levelNum > #levelList then levelNum = levelNum - #levelList end
|
|
currLevel = levelList[levelNum]
|
|
LevelLoadTiles()
|
|
main_Player.pos.x, main_Player.pos.y = 0,-0.1
|
|
end
|
|
end
|
|
|
|
function love.draw()
|
|
-- GAME WORLD
|
|
love.graphics.scale(game.scale,game.scale)
|
|
LevelDisplayBackground()
|
|
for _, enty in pairs(LoadedEntities) do
|
|
enty:HandleAnimation()
|
|
enty:Animate()
|
|
enty:Draw()
|
|
end
|
|
LevelDisplayForeground()
|
|
|
|
-- Save color
|
|
local pcr, pcg, pcb, pca = love.graphics.getColor()
|
|
|
|
-- HUD
|
|
love.graphics.scale(1,1)
|
|
-- Scale control
|
|
if game.height > game.width then
|
|
textScale = game.height/480/2
|
|
else
|
|
textScale = game.width/640/2
|
|
end
|
|
|
|
--debug
|
|
if debug then DebugUI() end
|
|
if debug_collision then DebugColisions() end
|
|
|
|
-- reset color
|
|
love.graphics.setColor(pcr,pcg,pcb,pca)
|
|
|
|
|
|
local pcr, pcg, pcb, pca = love.graphics.getColor()
|
|
if do_pause then PauseUI() end
|
|
love.graphics.setColor(pcr,pcg,pcb,pca)
|
|
end
|