Lighting system
This commit is contained in:
290
main.lua
290
main.lua
@@ -1,138 +1,152 @@
|
||||
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
|
||||
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"
|
||||
Canvas = {
|
||||
Darkness = CreateDarkness()
|
||||
}
|
||||
Camera.width = game.width
|
||||
Camera.height = game.height
|
||||
levelList = {"level1","2","3","ewae","tileset"}
|
||||
levelNum = 1
|
||||
currLevel = levelList[levelNum]
|
||||
LevelLoadTiles()
|
||||
main_Player = Player:New(0,20)
|
||||
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
|
||||
if game.width ~= love.graphics.getWidth() or game.height ~= love.graphics.getHeight() then
|
||||
game.width = love.graphics.getWidth()
|
||||
game.height = love.graphics.getHeight()
|
||||
Camera.height = game.height
|
||||
Camera.width = game.width
|
||||
Canvas.Darkness:release()
|
||||
Canvas.Darkness = CreateDarkness()
|
||||
end
|
||||
|
||||
-- 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)
|
||||
love.graphics.setColor(1,1,1,1)
|
||||
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()
|
||||
|
||||
love.graphics.setCanvas(Canvas.Darkness)
|
||||
DoDarkness()
|
||||
DoLights()
|
||||
DoBorder()
|
||||
|
||||
-- reset to screen
|
||||
love.graphics.setColor(1,1,1,1)
|
||||
love.graphics.setCanvas()
|
||||
love.graphics.scale(1,1)
|
||||
DrawDarkness()
|
||||
-- HUD
|
||||
-- Scale control
|
||||
textScale = 0.5
|
||||
|
||||
--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
|
||||
|
||||
Reference in New Issue
Block a user