Compare commits
	
		
			10 Commits
		
	
	
		
			7da12d3035
			...
			451d710326
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					451d710326 | ||
| 
						 | 
					585fccf59a | ||
| 
						 | 
					3290d704e3 | ||
| 
						 | 
					7b553d9758 | ||
| 
						 | 
					e9e3731a0b | ||
| 
						 | 
					ed9265939c | ||
| 
						 | 
					826ef98f19 | ||
| 
						 | 
					db3559b8c6 | ||
| 
						 | 
					88faf2538b | ||
| 
						 | 
					7252c3cd2c | 
@ -13,8 +13,11 @@ local function drawHealth()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function DrawGame()
 | 
			
		||||
	local curWidth, curHeight = love.graphics.getDimensions()
 | 
			
		||||
	--STI
 | 
			
		||||
	GameMap:draw()
 | 
			
		||||
	love.graphics.scale(_G.X_SCALE, _G.Y_SCALE)
 | 
			
		||||
	GameMap:draw(0, 0, _G.X_SCALE, _G.Y_SCALE)
 | 
			
		||||
	GameMap:resize(curWidth / _G.X_SCALE, curHeight / _G.Y_SCALE)
 | 
			
		||||
 | 
			
		||||
	-- WindField
 | 
			
		||||
	if DebugFlag then
 | 
			
		||||
 | 
			
		||||
@ -24,9 +24,9 @@ function GameKeyPressed(key)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if key == "m" then
 | 
			
		||||
		MUTED = not MUTED
 | 
			
		||||
		_G.MUTED = not _G.MUTED
 | 
			
		||||
		-- Need to set the battle music to mute
 | 
			
		||||
		if MUTED then
 | 
			
		||||
		if _G.MUTED then
 | 
			
		||||
			musicBattle:setVolume(0)
 | 
			
		||||
		else
 | 
			
		||||
			musicBattle:setVolume(0.5)
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
local function title()
 | 
			
		||||
	local height = love.graphics.getHeight()
 | 
			
		||||
	local width = love.graphics.getWidth()
 | 
			
		||||
	local height = love.graphics.getHeight() / _G.Y_SCALE
 | 
			
		||||
	local width = love.graphics.getWidth() / _G.X_SCALE
 | 
			
		||||
	love.graphics.setFont(GameFont)
 | 
			
		||||
	love.graphics.setColor(0.5, 1, 1)
 | 
			
		||||
	love.graphics.rectangle("fill", 0, 0, width, height)
 | 
			
		||||
@ -9,7 +9,7 @@ local function title()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function DrawMenu()
 | 
			
		||||
	local bwidth, bheight = 300, 140
 | 
			
		||||
	local bwidth, bheight = 300 * _G.X_SCALE, 140 * _G.Y_SCALE
 | 
			
		||||
	title()
 | 
			
		||||
	GUI:newButton(100, 200, bwidth, bheight, "Play", MENU_POS == 0 and true or false)
 | 
			
		||||
	GUI:newButton(100, 350, bwidth, bheight, "???", MENU_POS == 1 and true or false)
 | 
			
		||||
 | 
			
		||||
@ -7,12 +7,12 @@ function MenuKeyPressed(key)
 | 
			
		||||
		if MENU_POS == 0 then
 | 
			
		||||
			--Change state to GAME!
 | 
			
		||||
			_G.GAMESTATE = "GAME"
 | 
			
		||||
			print("STATE CHANEGD: GAME!")
 | 
			
		||||
			--print("STATE CHANEGD: GAME!")
 | 
			
		||||
			musicMenu:stop()
 | 
			
		||||
		elseif MENU_POS == 1 then
 | 
			
		||||
			print("STATE CHANEGD: DUNNO!")
 | 
			
		||||
			--print("STATE CHANEGD: DUNNO!")
 | 
			
		||||
		elseif MENU_POS == 2 then
 | 
			
		||||
			print("STATE CHANEGD: DUNNO!")
 | 
			
		||||
			--print("STATE CHANEGD: DUNNO!")
 | 
			
		||||
		elseif MENU_POS == 3 then
 | 
			
		||||
			love.event.quit()
 | 
			
		||||
		end
 | 
			
		||||
@ -41,4 +41,14 @@ function MenuKeyPressed(key)
 | 
			
		||||
		_G.GAMESTATE = "MENU"
 | 
			
		||||
		love.load()
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if key == "m" then
 | 
			
		||||
		MUTED = not MUTED
 | 
			
		||||
 | 
			
		||||
		if MUTED then
 | 
			
		||||
			musicMenu:setVolume(0)
 | 
			
		||||
		else
 | 
			
		||||
			musicMenu:setVolume(0.5)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
function DrawPause()
 | 
			
		||||
	local opacity = 0.3
 | 
			
		||||
	local height = love.graphics.getHeight()
 | 
			
		||||
	local width = love.graphics.getWidth()
 | 
			
		||||
	local bwidth, bheight = 300, 140
 | 
			
		||||
	local height = love.graphics.getHeight() / _G.Y_SCALE
 | 
			
		||||
	local width = love.graphics.getWidth() / _G.X_SCALE
 | 
			
		||||
	local bwidth, bheight = 300 * _G.X_SCALE, 140 * _G.Y_SCALE
 | 
			
		||||
	love.graphics.setFont(GameFont)
 | 
			
		||||
 | 
			
		||||
	DrawGame() --Draw a single frame of the game
 | 
			
		||||
@ -13,7 +13,7 @@ function DrawPause()
 | 
			
		||||
	love.graphics.print("PAUSED", 100, 100)
 | 
			
		||||
	--love.graphics.print("" .. PAUSE_POS, 200,200)
 | 
			
		||||
 | 
			
		||||
	GUI:newButton(100, 200, bwidth, bheight, "Return", PAUSE_POS == 0 and true or false)
 | 
			
		||||
	GUI:newButton(100, 200, bwidth, bheight, "Back", PAUSE_POS == 0 and true or false)
 | 
			
		||||
	GUI:newButton(100, 350, bwidth, bheight, "Menu", PAUSE_POS == 1 and true or false)
 | 
			
		||||
	GUI:newButton(100, 500, bwidth, bheight, "Quit", PAUSE_POS == 2 and true or false)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,19 @@
 | 
			
		||||
function PauseKeyPressed(key)
 | 
			
		||||
	if key == "escape" then
 | 
			
		||||
		-- quickly return to the game
 | 
			
		||||
		if not _G.MUTED then
 | 
			
		||||
			musicBattle:setVolume(0.5)
 | 
			
		||||
			musicPause:setVolume(0)
 | 
			
		||||
		else
 | 
			
		||||
			musicBattle:setVolume(0)
 | 
			
		||||
			musicPause:setVolume(0)
 | 
			
		||||
		end
 | 
			
		||||
		_G.GAMESTATE = "GAME"
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if key == "return" then
 | 
			
		||||
		-- quickly return to the game
 | 
			
		||||
		if not MUTED then
 | 
			
		||||
		if not _G.MUTED then
 | 
			
		||||
			musicBattle:setVolume(0.5)
 | 
			
		||||
			musicPause:setVolume(0)
 | 
			
		||||
		else
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
local function winner()
 | 
			
		||||
	local width = love.graphics.getWidth()
 | 
			
		||||
	local height = love.graphics.getHeight()
 | 
			
		||||
	local width = love.graphics.getWidth() / _G.X_SCALE
 | 
			
		||||
	local height = love.graphics.getHeight() / _G.Y_SCALE
 | 
			
		||||
	local opacity = 0.3
 | 
			
		||||
	local s = ""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								conf.lua
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								conf.lua
									
									
									
									
									
								
							@ -1,7 +1,8 @@
 | 
			
		||||
--Config file for the game
 | 
			
		||||
function love.conf(t)
 | 
			
		||||
	t.window.width = 1600
 | 
			
		||||
	t.window.height = 960
 | 
			
		||||
	t.window.width = 1366
 | 
			
		||||
	t.window.height = 768
 | 
			
		||||
	t.window.title = "Tanks-A-Lot"
 | 
			
		||||
	t.window.resizable = true
 | 
			
		||||
	t.version = "11.5"
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,16 @@
 | 
			
		||||
-- WINDOW SCALE
 | 
			
		||||
-- Used to scale the game up or down
 | 
			
		||||
-- (scales STI world map and Walls in the game! )
 | 
			
		||||
-- (see debug for more)
 | 
			
		||||
X_SCALE = 1
 | 
			
		||||
Y_SCALE = 1
 | 
			
		||||
 | 
			
		||||
-- TILE SCALE
 | 
			
		||||
-- Since this game is put together rather badly
 | 
			
		||||
-- the game world is 1600x960
 | 
			
		||||
GAME_WORLD_DIM_WIDTH = 1600
 | 
			
		||||
GAME_WORLD_DIM_HEIGHT = 960
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
* Game states:
 | 
			
		||||
* - MENU
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										195
									
								
								libs/profile.lua
									
									
									
									
									
								
							
							
						
						
									
										195
									
								
								libs/profile.lua
									
									
									
									
									
								
							@ -1,195 +0,0 @@
 | 
			
		||||
local clock = os.clock
 | 
			
		||||
 | 
			
		||||
--- Simple profiler written in Lua.
 | 
			
		||||
-- @module profile
 | 
			
		||||
-- @alias profile
 | 
			
		||||
local profile = {}
 | 
			
		||||
 | 
			
		||||
-- function labels
 | 
			
		||||
local _labeled = {}
 | 
			
		||||
-- function definitions
 | 
			
		||||
local _defined = {}
 | 
			
		||||
-- time of last call
 | 
			
		||||
local _tcalled = {}
 | 
			
		||||
-- total execution time
 | 
			
		||||
local _telapsed = {}
 | 
			
		||||
-- number of calls
 | 
			
		||||
local _ncalls = {}
 | 
			
		||||
-- list of internal profiler functions
 | 
			
		||||
local _internal = {}
 | 
			
		||||
 | 
			
		||||
--- This is an internal function.
 | 
			
		||||
-- @tparam string event Event type
 | 
			
		||||
-- @tparam number line Line number
 | 
			
		||||
-- @tparam[opt] table info Debug info table
 | 
			
		||||
function profile.hooker(event, line, info)
 | 
			
		||||
	info = info or debug.getinfo(2, "fnS")
 | 
			
		||||
	local f = info.func
 | 
			
		||||
	-- ignore the profiler itself
 | 
			
		||||
	if _internal[f] or info.what ~= "Lua" then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	-- get the function name if available
 | 
			
		||||
	if info.name then
 | 
			
		||||
		_labeled[f] = info.name
 | 
			
		||||
	end
 | 
			
		||||
	-- find the line definition
 | 
			
		||||
	if not _defined[f] then
 | 
			
		||||
		_defined[f] = info.short_src .. ":" .. info.linedefined
 | 
			
		||||
		_ncalls[f] = 0
 | 
			
		||||
		_telapsed[f] = 0
 | 
			
		||||
	end
 | 
			
		||||
	if _tcalled[f] then
 | 
			
		||||
		local dt = clock() - _tcalled[f]
 | 
			
		||||
		_telapsed[f] = _telapsed[f] + dt
 | 
			
		||||
		_tcalled[f] = nil
 | 
			
		||||
	end
 | 
			
		||||
	if event == "tail call" then
 | 
			
		||||
		local prev = debug.getinfo(3, "fnS")
 | 
			
		||||
		profile.hooker("return", line, prev)
 | 
			
		||||
		profile.hooker("call", line, info)
 | 
			
		||||
	elseif event == "call" then
 | 
			
		||||
		_tcalled[f] = clock()
 | 
			
		||||
	else
 | 
			
		||||
		_ncalls[f] = _ncalls[f] + 1
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--- Sets a clock function to be used by the profiler.
 | 
			
		||||
-- @tparam function func Clock function that returns a number
 | 
			
		||||
function profile.setclock(f)
 | 
			
		||||
	assert(type(f) == "function", "clock must be a function")
 | 
			
		||||
	clock = f
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--- Starts collecting data.
 | 
			
		||||
function profile.start()
 | 
			
		||||
	if rawget(_G, "jit") then
 | 
			
		||||
		jit.off()
 | 
			
		||||
		jit.flush()
 | 
			
		||||
	end
 | 
			
		||||
	debug.sethook(profile.hooker, "cr")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--- Stops collecting data.
 | 
			
		||||
function profile.stop()
 | 
			
		||||
	debug.sethook()
 | 
			
		||||
	for f in pairs(_tcalled) do
 | 
			
		||||
		local dt = clock() - _tcalled[f]
 | 
			
		||||
		_telapsed[f] = _telapsed[f] + dt
 | 
			
		||||
		_tcalled[f] = nil
 | 
			
		||||
	end
 | 
			
		||||
	-- merge closures
 | 
			
		||||
	local lookup = {}
 | 
			
		||||
	for f, d in pairs(_defined) do
 | 
			
		||||
		local id = (_labeled[f] or "?") .. d
 | 
			
		||||
		local f2 = lookup[id]
 | 
			
		||||
		if f2 then
 | 
			
		||||
			_ncalls[f2] = _ncalls[f2] + (_ncalls[f] or 0)
 | 
			
		||||
			_telapsed[f2] = _telapsed[f2] + (_telapsed[f] or 0)
 | 
			
		||||
			_defined[f], _labeled[f] = nil, nil
 | 
			
		||||
			_ncalls[f], _telapsed[f] = nil, nil
 | 
			
		||||
		else
 | 
			
		||||
			lookup[id] = f
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	collectgarbage("collect")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--- Resets all collected data.
 | 
			
		||||
function profile.reset()
 | 
			
		||||
	for f in pairs(_ncalls) do
 | 
			
		||||
		_ncalls[f] = 0
 | 
			
		||||
	end
 | 
			
		||||
	for f in pairs(_telapsed) do
 | 
			
		||||
		_telapsed[f] = 0
 | 
			
		||||
	end
 | 
			
		||||
	for f in pairs(_tcalled) do
 | 
			
		||||
		_tcalled[f] = nil
 | 
			
		||||
	end
 | 
			
		||||
	collectgarbage("collect")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--- This is an internal function.
 | 
			
		||||
-- @tparam function a First function
 | 
			
		||||
-- @tparam function b Second function
 | 
			
		||||
-- @treturn boolean True if "a" should rank higher than "b"
 | 
			
		||||
function profile.comp(a, b)
 | 
			
		||||
	local dt = _telapsed[b] - _telapsed[a]
 | 
			
		||||
	if dt == 0 then
 | 
			
		||||
		return _ncalls[b] < _ncalls[a]
 | 
			
		||||
	end
 | 
			
		||||
	return dt < 0
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--- Generates a report of functions that have been called since the profile was started.
 | 
			
		||||
-- Returns the report as a numeric table of rows containing the rank, function label, number of calls, total execution time and source code line number.
 | 
			
		||||
-- @tparam[opt] number limit Maximum number of rows
 | 
			
		||||
-- @treturn table Table of rows
 | 
			
		||||
function profile.query(limit)
 | 
			
		||||
	local t = {}
 | 
			
		||||
	for f, n in pairs(_ncalls) do
 | 
			
		||||
		if n > 0 then
 | 
			
		||||
			t[#t + 1] = f
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	table.sort(t, profile.comp)
 | 
			
		||||
	if limit then
 | 
			
		||||
		while #t > limit do
 | 
			
		||||
			table.remove(t)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	for i, f in ipairs(t) do
 | 
			
		||||
		local dt = 0
 | 
			
		||||
		if _tcalled[f] then
 | 
			
		||||
			dt = clock() - _tcalled[f]
 | 
			
		||||
		end
 | 
			
		||||
		t[i] = { i, _labeled[f] or "?", _ncalls[f], _telapsed[f] + dt, _defined[f] }
 | 
			
		||||
	end
 | 
			
		||||
	return t
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local cols = { 3, 29, 11, 24, 32 }
 | 
			
		||||
 | 
			
		||||
--- Generates a text report of functions that have been called since the profile was started.
 | 
			
		||||
-- Returns the report as a string that can be printed to the console.
 | 
			
		||||
-- @tparam[opt] number limit Maximum number of rows
 | 
			
		||||
-- @treturn string Text-based profiling report
 | 
			
		||||
function profile.report(n)
 | 
			
		||||
	local out = {}
 | 
			
		||||
	local report = profile.query(n)
 | 
			
		||||
	for i, row in ipairs(report) do
 | 
			
		||||
		for j = 1, 5 do
 | 
			
		||||
			local s = row[j]
 | 
			
		||||
			local l2 = cols[j]
 | 
			
		||||
			s = tostring(s)
 | 
			
		||||
			local l1 = s:len()
 | 
			
		||||
			if l1 < l2 then
 | 
			
		||||
				s = s .. (" "):rep(l2 - l1)
 | 
			
		||||
			elseif l1 > l2 then
 | 
			
		||||
				s = s:sub(l1 - l2 + 1, l1)
 | 
			
		||||
			end
 | 
			
		||||
			row[j] = s
 | 
			
		||||
		end
 | 
			
		||||
		out[i] = table.concat(row, " | ")
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local row =
 | 
			
		||||
		" +-----+-------------------------------+-------------+--------------------------+----------------------------------+ \n"
 | 
			
		||||
	local col =
 | 
			
		||||
		" | #   | Function                      | Calls       | Time                     | Code                             | \n"
 | 
			
		||||
	local sz = row .. col .. row
 | 
			
		||||
	if #out > 0 then
 | 
			
		||||
		sz = sz .. " | " .. table.concat(out, " | \n | ") .. " | \n"
 | 
			
		||||
	end
 | 
			
		||||
	return "\n" .. sz .. row
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- store all internal profiler functions
 | 
			
		||||
for _, v in pairs(profile) do
 | 
			
		||||
	if type(v) == "function" then
 | 
			
		||||
		_internal[v] = true
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
return profile
 | 
			
		||||
							
								
								
									
										32
									
								
								main.lua
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								main.lua
									
									
									
									
									
								
							@ -12,7 +12,10 @@ World:addCollisionClass("Player2")
 | 
			
		||||
World:addCollisionClass("Bullet2")
 | 
			
		||||
World:addCollisionClass("Wall")
 | 
			
		||||
 | 
			
		||||
require("gui")
 | 
			
		||||
 | 
			
		||||
require("restart")
 | 
			
		||||
require("truncate")
 | 
			
		||||
require("player")
 | 
			
		||||
require("bullet")
 | 
			
		||||
require("mapsloader")
 | 
			
		||||
@ -104,10 +107,25 @@ function love.run()
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function love.load(args)
 | 
			
		||||
function love.resized()
 | 
			
		||||
	--TOD0: fix scaling!
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function love.load()
 | 
			
		||||
	-- Set a random seed
 | 
			
		||||
	love.math.setRandomSeed(love.timer.getTime())
 | 
			
		||||
 | 
			
		||||
	-- Figure out the X_SCALE and Y_SCALE
 | 
			
		||||
	local curWidth, curHeight = love.graphics.getDimensions()
 | 
			
		||||
 | 
			
		||||
	print("------")
 | 
			
		||||
	print(love.graphics.getDimensions())
 | 
			
		||||
 | 
			
		||||
	_G.X_SCALE = truncate(curWidth / GAME_WORLD_DIM_WIDTH, 3)
 | 
			
		||||
	_G.Y_SCALE = truncate(curHeight / GAME_WORLD_DIM_HEIGHT, 3)
 | 
			
		||||
	print("x scale:" .. _G.X_SCALE)
 | 
			
		||||
	print("y scale:" .. _G.Y_SCALE)
 | 
			
		||||
 | 
			
		||||
	--Game values (reset after each load)
 | 
			
		||||
	HEALTH = 3
 | 
			
		||||
	P1_DELAY = 0.5
 | 
			
		||||
@ -127,6 +145,7 @@ function love.load(args)
 | 
			
		||||
	KeyDelay2 = P2_DELAY
 | 
			
		||||
 | 
			
		||||
	local playerSpeed = 12000
 | 
			
		||||
	--TODO: two player speeds for upgrades
 | 
			
		||||
	UserPlayer1 = Player(1, 1000, 100, HEALTH, "assets/player1.png", playerSpeed)
 | 
			
		||||
	UserPlayer2 = Player(2, 200, 300, HEALTH, "assets/player2.png", playerSpeed)
 | 
			
		||||
 | 
			
		||||
@ -153,7 +172,7 @@ function love.update(dt)
 | 
			
		||||
	if _G.GAMESTATE == "MENU" then
 | 
			
		||||
		UpdateMenu(dt)
 | 
			
		||||
		-- Handle music
 | 
			
		||||
		if not musicMenu:isPlaying() then
 | 
			
		||||
		if not musicMenu:isPlaying() and not _G.MUTED then
 | 
			
		||||
			musicMenu:setVolume(0.5)
 | 
			
		||||
			love.audio.play(musicMenu)
 | 
			
		||||
		end
 | 
			
		||||
@ -161,7 +180,7 @@ function love.update(dt)
 | 
			
		||||
	if _G.GAMESTATE == "PAUSE" then
 | 
			
		||||
		UpdatePause(dt)
 | 
			
		||||
		-- Handle music
 | 
			
		||||
		if not musicPause:isPlaying() then
 | 
			
		||||
		if not musicPause:isPlaying() and not _G.MUTED then
 | 
			
		||||
			musicBattle:setVolume(0)
 | 
			
		||||
			musicPause:setVolume(0.5)
 | 
			
		||||
			love.audio.play(musicBattle)
 | 
			
		||||
@ -171,7 +190,7 @@ function love.update(dt)
 | 
			
		||||
	if _G.GAMESTATE == "GAME" then
 | 
			
		||||
		UpdateGame(dt)
 | 
			
		||||
		-- Handle music
 | 
			
		||||
		if not musicBattle:isPlaying() then
 | 
			
		||||
		if not musicBattle:isPlaying() and not _G.MUTED then
 | 
			
		||||
			musicBattle:setVolume(0.5)
 | 
			
		||||
			musicPause:setVolume(0)
 | 
			
		||||
			love.audio.play(musicBattle)
 | 
			
		||||
@ -192,11 +211,6 @@ function love.draw()
 | 
			
		||||
	end
 | 
			
		||||
	if _G.GAMESTATE == "GAME" then
 | 
			
		||||
		DrawGame()
 | 
			
		||||
		if DebugFlag then
 | 
			
		||||
			love.graphics.setFont(DebugFont)
 | 
			
		||||
			love.graphics.print("Debug Mode", 1200, 850)
 | 
			
		||||
			love.graphics.print("" .. GAMESTATE, 200, 200)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	if _G.GAMESTATE == "WIN" then
 | 
			
		||||
		DrawWin()
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,8 @@ function LoadMap(lvl)
 | 
			
		||||
	if GameMap.layers["Walls"] then
 | 
			
		||||
		for _, obj in ipairs(GameMap.layers["Walls"].objects) do
 | 
			
		||||
			local wall = World:newRectangleCollider(obj.x, obj.y, obj.width, obj.height)
 | 
			
		||||
			--	local wall =
 | 
			
		||||
			--		World:newRectangleCollider(obj.x * _G.X_SCALE, obj.y * _G.Y_SCALE, obj.width * _G.X_SCALE, obj.height * _G.Y_SCALE)
 | 
			
		||||
			wall:setType("static")
 | 
			
		||||
			table.insert(Walls, wall)
 | 
			
		||||
			Walls[#Walls]:setCollisionClass("Wall")
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@ function Player:new(p, x, y, health, image, speed)
 | 
			
		||||
 | 
			
		||||
	-- Collision Stuff
 | 
			
		||||
	--self.collider = World:newRectangleCollider(x, y, 50, 62)
 | 
			
		||||
	self.collider = World:newCircleCollider(x, y, 24)
 | 
			
		||||
	self.collider = World:newCircleCollider(x, y, 24 * X_SCALE)
 | 
			
		||||
	self.collider:setFixedRotation(true)
 | 
			
		||||
 | 
			
		||||
	if self.p == 1 then
 | 
			
		||||
@ -27,6 +27,8 @@ function Player:new(p, x, y, health, image, speed)
 | 
			
		||||
	-- Rotation Stuff
 | 
			
		||||
	self.rotation = math.rad(90)
 | 
			
		||||
	self.rotSpeed = 2
 | 
			
		||||
	--self.scaleX = 1 * _G.X_SCALE
 | 
			
		||||
	--self.scaleY = 1 * _G.Y_SCALE
 | 
			
		||||
	self.scaleX = 1
 | 
			
		||||
	self.scaleY = 1
 | 
			
		||||
	self.originX = self.width / 2
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user