Compare commits
	
		
			12 Commits
		
	
	
		
			5f0256e0af
			...
			7e86da7806
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
									
								
								 | 
						7e86da7806 | |
| 
							
							
								 | 
						a183dac913 | |
| 
							
							
								 | 
						69ceec024b | |
| 
							
							
								 | 
						2b48358ce7 | |
| 
							
							
								 | 
						ecebca515c | |
| 
							
							
								 | 
						9995123c81 | |
| 
							
							
								 | 
						33ade34886 | |
| 
							
							
								 | 
						0fa50c3324 | |
| 
							
							
								 | 
						a42cf7953f | |
| 
							
							
								 | 
						da8b9004b4 | |
| 
							
							
								 | 
						e8477e8750 | |
| 
							
							
								 | 
						f021446439 | 
| 
						 | 
				
			
			@ -73,16 +73,16 @@ function Player:Smart()
 | 
			
		|||
 | 
			
		||||
    if math.abs(self.vel.x) < self.zeroSpeed then self.vel.x = 0 end
 | 
			
		||||
 | 
			
		||||
    if keybind:Check(keybind.moveLeft) then
 | 
			
		||||
    if Keybind:Check(Keybind.move.left) then
 | 
			
		||||
      self.move_x = -self.moveSpeed
 | 
			
		||||
    elseif keybind:Check(keybind.moveRight) then
 | 
			
		||||
    elseif Keybind:Check(Keybind.move.right) then
 | 
			
		||||
      self.move_x = self.moveSpeed
 | 
			
		||||
    else
 | 
			
		||||
      self.move_x = 0
 | 
			
		||||
    end
 | 
			
		||||
    self.vel.x = self.vel.x
 | 
			
		||||
 | 
			
		||||
    if keybind:Check(keybind.moveJump) then
 | 
			
		||||
    if Keybind:Check(Keybind.move.jump) then
 | 
			
		||||
      if self.isOnGround then
 | 
			
		||||
        self.vel.y = -self.jumpImpulse
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			@ -90,18 +90,18 @@ function Player:Smart()
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  self.dashCooldownTimer = math.max(0,self.dashCooldownTimer - current_dt)
 | 
			
		||||
  if keybind:Check(keybind.moveDash) then
 | 
			
		||||
  if Keybind:Check(Keybind.move.dash) then
 | 
			
		||||
    if self.dashCooldownTimer == 0
 | 
			
		||||
    and not self.isDashing
 | 
			
		||||
    and self.dashCount > 0 then
 | 
			
		||||
      self.dashCount = self.dashCount - 1
 | 
			
		||||
      self.isDashing = true
 | 
			
		||||
      local vertical = 0
 | 
			
		||||
      if keybind:Check(keybind.moveDown) then vertical = vertical + 1 end
 | 
			
		||||
      if keybind:Check(keybind.moveUp) then vertical = vertical - 1 end
 | 
			
		||||
      if Keybind:Check(Keybind.move.down) then vertical = vertical + 1 end
 | 
			
		||||
      if Keybind:Check(Keybind.move.up) then vertical = vertical - 1 end
 | 
			
		||||
      local horizontal = 0
 | 
			
		||||
      if keybind:Check(keybind.moveRight) then horizontal = horizontal + 1 end
 | 
			
		||||
      if keybind:Check(keybind.moveLeft) then horizontal = horizontal - 1 end
 | 
			
		||||
      if Keybind:Check(Keybind.move.right) then horizontal = horizontal + 1 end
 | 
			
		||||
      if Keybind:Check(Keybind.move.left) then horizontal = horizontal - 1 end
 | 
			
		||||
 | 
			
		||||
      if horizontal == 0 and vertical == 0 then
 | 
			
		||||
        horizontal = self.sprite_flip.x
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,9 @@
 | 
			
		|||
keybind = {}
 | 
			
		||||
Keybind = {}
 | 
			
		||||
Keybind.move = {}
 | 
			
		||||
Keybind.menu = {}
 | 
			
		||||
 | 
			
		||||
function keybind:Check(key)
 | 
			
		||||
  for _, keyname in pairs(key) do
 | 
			
		||||
function Keybind:Check(action)
 | 
			
		||||
  for _, keyname in pairs(action) do
 | 
			
		||||
    if type(keyname) == "string" then
 | 
			
		||||
      if love.keyboard.isDown(keyname) then return true end
 | 
			
		||||
    else
 | 
			
		||||
| 
						 | 
				
			
			@ -11,11 +13,36 @@ function keybind:Check(key)
 | 
			
		|||
  return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Colision(cat, key)
 | 
			
		||||
  for _, action in pairs(cat) do
 | 
			
		||||
    for _, keyname in pairs(action) do
 | 
			
		||||
      if key == keyname then return true end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
keybind.moveLeft = {"left", "a"}
 | 
			
		||||
keybind.moveRight = {"right", "d"}
 | 
			
		||||
keybind.moveUp = {"up", "w"}
 | 
			
		||||
keybind.moveDown = {"down", "s"}
 | 
			
		||||
keybind.moveJump = {"z", "space"}
 | 
			
		||||
keybind.moveAttack = {"x", 1}
 | 
			
		||||
keybind.moveDash = {"c", 2}
 | 
			
		||||
function Keybind:Add(action, key)
 | 
			
		||||
  table.insert(action, key)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Change(action, position, key)
 | 
			
		||||
  action[position] = key
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Remove(action)
 | 
			
		||||
  action = {}
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Default()
 | 
			
		||||
  Keybind.move.left = {"left", "a"}
 | 
			
		||||
  Keybind.move.right = {"right", "d"}
 | 
			
		||||
  Keybind.move.up = {"up", "w"}
 | 
			
		||||
  Keybind.move.down = {"down", "s"}
 | 
			
		||||
  Keybind.move.jump = {"z", "space"}
 | 
			
		||||
  Keybind.move.attack = {"x", 1}
 | 
			
		||||
  Keybind.move.dash = {"c", 2}
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Set default values at start
 | 
			
		||||
Keybind:Default()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										288
									
								
								main.lua
								
								
								
								
							
							
						
						
									
										288
									
								
								main.lua
								
								
								
								
							| 
						 | 
				
			
			@ -1,144 +1,144 @@
 | 
			
		|||
function love.load()
 | 
			
		||||
	arrow = 0
 | 
			
		||||
 | 
			
		||||
	do_pause = false
 | 
			
		||||
 | 
			
		||||
	debug = false
 | 
			
		||||
	debug_collision = false
 | 
			
		||||
	editor_mode = 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()
 | 
			
		||||
	}
 | 
			
		||||
	love.graphics.setCanvas(Canvas.Darkness)
 | 
			
		||||
	SetDarkness()
 | 
			
		||||
	love.graphics.setCanvas()
 | 
			
		||||
 | 
			
		||||
	Camera.width = game.width
 | 
			
		||||
	Camera.height = game.height
 | 
			
		||||
 | 
			
		||||
	levelList = {"level1","2","3","ewae","tileset"}
 | 
			
		||||
	levelNum = 1
 | 
			
		||||
	currLevel = levelList[levelNum]
 | 
			
		||||
	LoadedEntities = {}
 | 
			
		||||
	LevelLoadTiles()
 | 
			
		||||
 | 
			
		||||
	main_Player = Player:New(75,50)
 | 
			
		||||
 | 
			
		||||
	table.insert(LoadedEntities,main_Player)
 | 
			
		||||
	table.insert(LoadedEntities,Kupo:New(100,150))
 | 
			
		||||
	table.insert(LoadedEntities,Kupo:New(300,150))
 | 
			
		||||
	table.insert(LoadedEntities,Decoration:New(200,89,animation.decoration.candelabra,80))
 | 
			
		||||
	table.insert(LoadedEntities,Fairy:New(200,88))
 | 
			
		||||
 | 
			
		||||
	gravity = 0.2
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	if editor_mode then
 | 
			
		||||
		stepEditor()
 | 
			
		||||
	else
 | 
			
		||||
		stepGame()
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function love.wheelmoved(_, y)
 | 
			
		||||
	if editor_mode then
 | 
			
		||||
		if palette then
 | 
			
		||||
			p_scroll = p_scroll + y or 0
 | 
			
		||||
		else
 | 
			
		||||
			local oscale = game.scale
 | 
			
		||||
		 	game.scale = math.max(0.1,game.scale + y/16)
 | 
			
		||||
		end
 | 
			
		||||
	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
 | 
			
		||||
		if editor_mode then
 | 
			
		||||
 | 
			
		||||
		else
 | 
			
		||||
			main_Player.pos.x, main_Player.pos.y = 16,-10
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if key == "f3" then
 | 
			
		||||
		LoadLevel()
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if key == "f4" then
 | 
			
		||||
		if editor_mode then
 | 
			
		||||
			editor_mode = false
 | 
			
		||||
		else
 | 
			
		||||
			editor_mode = true
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function love.draw()
 | 
			
		||||
	if game.width ~= love.graphics.getWidth() or game.height ~= love.graphics.getHeight() then
 | 
			
		||||
		game.width = love.graphics.getWidth()
 | 
			
		||||
		game.height = love.graphics.getHeight()
 | 
			
		||||
		game_resize = true
 | 
			
		||||
	else
 | 
			
		||||
		game_resize = false
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if editor_mode then
 | 
			
		||||
		drawEditor()
 | 
			
		||||
	else
 | 
			
		||||
		drawGame()
 | 
			
		||||
	end
 | 
			
		||||
	love.graphics.print(arrow,10,40)
 | 
			
		||||
end
 | 
			
		||||
function love.load()
 | 
			
		||||
	arrow = 0
 | 
			
		||||
 | 
			
		||||
	do_pause = false
 | 
			
		||||
 | 
			
		||||
	debug = false
 | 
			
		||||
	debug_collision = false
 | 
			
		||||
	editor_mode = 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()
 | 
			
		||||
	}
 | 
			
		||||
	love.graphics.setCanvas(Canvas.Darkness)
 | 
			
		||||
	SetDarkness()
 | 
			
		||||
	love.graphics.setCanvas()
 | 
			
		||||
 | 
			
		||||
	Camera.width = game.width
 | 
			
		||||
	Camera.height = game.height
 | 
			
		||||
 | 
			
		||||
	levelList = {"level1","2","3","ewae","tileset"}
 | 
			
		||||
	levelNum = 1
 | 
			
		||||
	currLevel = levelList[levelNum]
 | 
			
		||||
	LoadedEntities = {}
 | 
			
		||||
	LevelLoadTiles()
 | 
			
		||||
 | 
			
		||||
	main_Player = Player:New(75,50)
 | 
			
		||||
 | 
			
		||||
	table.insert(LoadedEntities,main_Player)
 | 
			
		||||
	table.insert(LoadedEntities,Kupo:New(100,150))
 | 
			
		||||
	table.insert(LoadedEntities,Kupo:New(300,150))
 | 
			
		||||
	table.insert(LoadedEntities,Decoration:New(200,89,animation.decoration.candelabra,80))
 | 
			
		||||
	table.insert(LoadedEntities,Fairy:New(200,88))
 | 
			
		||||
 | 
			
		||||
	gravity = 0.2
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	if editor_mode then
 | 
			
		||||
		stepEditor()
 | 
			
		||||
	else
 | 
			
		||||
		stepGame()
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function love.wheelmoved(_, y)
 | 
			
		||||
	if editor_mode then
 | 
			
		||||
		if palette then
 | 
			
		||||
			p_scroll = p_scroll + y or 0
 | 
			
		||||
		else
 | 
			
		||||
			local oscale = game.scale
 | 
			
		||||
		 	game.scale = math.max(0.1,game.scale + y/16)
 | 
			
		||||
		end
 | 
			
		||||
	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
 | 
			
		||||
		if editor_mode then
 | 
			
		||||
 | 
			
		||||
		else
 | 
			
		||||
			main_Player.pos.x, main_Player.pos.y = 16,-10
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if key == "f3" then
 | 
			
		||||
		LoadLevel()
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if key == "f4" then
 | 
			
		||||
		if editor_mode then
 | 
			
		||||
			editor_mode = false
 | 
			
		||||
		else
 | 
			
		||||
			editor_mode = true
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function love.draw()
 | 
			
		||||
	if game.width ~= love.graphics.getWidth() or game.height ~= love.graphics.getHeight() then
 | 
			
		||||
		game.width = love.graphics.getWidth()
 | 
			
		||||
		game.height = love.graphics.getHeight()
 | 
			
		||||
		game_resize = true
 | 
			
		||||
	else
 | 
			
		||||
		game_resize = false
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if editor_mode then
 | 
			
		||||
		drawEditor()
 | 
			
		||||
	else
 | 
			
		||||
		drawGame()
 | 
			
		||||
	end
 | 
			
		||||
	love.graphics.print(arrow,10,40)
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue