Made HasPressed function and implemented it #6
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -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.move.left) then
 | 
			
		||||
    if Keybind:CheckDown(Keybind.move.left) then
 | 
			
		||||
      self.move_x = -self.moveSpeed
 | 
			
		||||
    elseif Keybind:Check(Keybind.move.right) then
 | 
			
		||||
    elseif Keybind:CheckDown(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.move.jump) then
 | 
			
		||||
    if Keybind:CheckDown(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.move.dash) then
 | 
			
		||||
  if Keybind:CheckDown(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.move.down) then vertical = vertical + 1 end
 | 
			
		||||
      if Keybind:Check(Keybind.move.up) then vertical = vertical - 1 end
 | 
			
		||||
      if Keybind:CheckDown(Keybind.move.down) then vertical = vertical + 1 end
 | 
			
		||||
      if Keybind:CheckDown(Keybind.move.up) then vertical = vertical - 1 end
 | 
			
		||||
      local horizontal = 0
 | 
			
		||||
      if Keybind:Check(Keybind.move.right) then horizontal = horizontal + 1 end
 | 
			
		||||
      if Keybind:Check(Keybind.move.left) then horizontal = horizontal - 1 end
 | 
			
		||||
      if Keybind:CheckDown(Keybind.move.right) then horizontal = horizontal + 1 end
 | 
			
		||||
      if Keybind:CheckDown(Keybind.move.left) then horizontal = horizontal - 1 end
 | 
			
		||||
 | 
			
		||||
      if horizontal == 0 and vertical == 0 then
 | 
			
		||||
        horizontal = self.sprite_flip.x
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,8 +3,8 @@ Keybind.move = {}
 | 
			
		|||
Keybind.menu = {}
 | 
			
		||||
Keybind.debug = {}
 | 
			
		||||
 | 
			
		||||
function Keybind:Check(action)
 | 
			
		||||
  for _, keyname in pairs(action) do
 | 
			
		||||
function Keybind:CheckDown(action)
 | 
			
		||||
  for _, keyname in pairs(action.keys) do
 | 
			
		||||
    if type(keyname) == "string" then
 | 
			
		||||
      if love.keyboard.isDown(keyname) then return true end
 | 
			
		||||
    else
 | 
			
		||||
| 
						 | 
				
			
			@ -14,43 +14,55 @@ function Keybind:Check(action)
 | 
			
		|||
  return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Colision(cat, key)
 | 
			
		||||
function Keybind:HasPressed(action)
 | 
			
		||||
  if Keybind:CheckDown(action) then
 | 
			
		||||
    if not action.pressed then
 | 
			
		||||
      action.pressed = true
 | 
			
		||||
      return true
 | 
			
		||||
    end
 | 
			
		||||
  else
 | 
			
		||||
    action.pressed = false
 | 
			
		||||
  end
 | 
			
		||||
  return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:CheckCollision(cat, key)
 | 
			
		||||
  for _, action in pairs(cat) do
 | 
			
		||||
    for _, keyname in pairs(action) do
 | 
			
		||||
    for _, keyname in pairs(action.keys) do
 | 
			
		||||
      if key == keyname then return true end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Add(action, key)
 | 
			
		||||
  table.insert(action, key)
 | 
			
		||||
function Keybind:AddKey(action, key)
 | 
			
		||||
  table.insert(action.keys, key)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Change(action, position, key)
 | 
			
		||||
  action[position] = key
 | 
			
		||||
function Keybind:ChangeKey(action, position, key)
 | 
			
		||||
  action.keys[position] = key
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Remove(action)
 | 
			
		||||
  action = {}
 | 
			
		||||
function Keybind:RemoveKeys(action)
 | 
			
		||||
  action.keys = {}
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function Keybind:Default()
 | 
			
		||||
  --Menu
 | 
			
		||||
  Keybind.menu.pause = {"escape"}
 | 
			
		||||
  Keybind.menu.pause= { keys = {"escape"}}
 | 
			
		||||
  --Move
 | 
			
		||||
  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}
 | 
			
		||||
  Keybind.move.left = { keys = {"left", "a"}}
 | 
			
		||||
  Keybind.move.right = { keys = {"right", "d"}}
 | 
			
		||||
  Keybind.move.up = { keys = {"up", "w"}}
 | 
			
		||||
  Keybind.move.down = { keys = {"down", "s"}}
 | 
			
		||||
  Keybind.move.jump = { keys = {"z", "space"}}
 | 
			
		||||
  Keybind.move.attack = { keys = {"x", 1}}
 | 
			
		||||
  Keybind.move.dash = { keys = {"c", 2}}
 | 
			
		||||
  --Debug
 | 
			
		||||
  Keybind.debug.debug = {"f1"}
 | 
			
		||||
  Keybind.debug.reposition = {"f2"}
 | 
			
		||||
  Keybind.debug.reload = {"f3"}
 | 
			
		||||
  Keybind.debug.editor = {"f4"}
 | 
			
		||||
  Keybind.debug.debug = { keys = {"f1"}}
 | 
			
		||||
  Keybind.debug.reposition = { keys = {"f2"}}
 | 
			
		||||
  Keybind.debug.reload = { keys = {"f3"}}
 | 
			
		||||
  Keybind.debug.editor = { keys = {"f4"}}
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Set default values at start
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								main.lua
								
								
								
								
							
							
						
						
									
										10
									
								
								main.lua
								
								
								
								
							| 
						 | 
				
			
			@ -66,7 +66,7 @@ function love.update(dt)
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
	--keypressed
 | 
			
		||||
	if Keybind:Check(Keybind.menu.pause) then
 | 
			
		||||
	if Keybind:HasPressed(Keybind.menu.pause) then
 | 
			
		||||
    if do_pause then
 | 
			
		||||
			do_pause = false
 | 
			
		||||
		else
 | 
			
		||||
| 
						 | 
				
			
			@ -75,7 +75,7 @@ function love.update(dt)
 | 
			
		|||
		end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
	if Keybind:Check(Keybind.debug.debug) then
 | 
			
		||||
	if Keybind:HasPressed(Keybind.debug.debug) then
 | 
			
		||||
		if debug then
 | 
			
		||||
			debug = false
 | 
			
		||||
			debug_collision = true
 | 
			
		||||
| 
						 | 
				
			
			@ -86,17 +86,17 @@ function love.update(dt)
 | 
			
		|||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if Keybind:Check(Keybind.debug.reposition) then
 | 
			
		||||
	if Keybind:HasPressed(Keybind.debug.reposition) then
 | 
			
		||||
		if not editor_mode then
 | 
			
		||||
			main_Player.pos.x, main_Player.pos.y = 16,-10
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if Keybind:Check(Keybind.debug.reload) then
 | 
			
		||||
	if Keybind:HasPressed(Keybind.debug.reload) then
 | 
			
		||||
		LoadLevel()
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if Keybind:Check(Keybind.debug.editor) then
 | 
			
		||||
	if Keybind:HasPressed(Keybind.debug.editor) then
 | 
			
		||||
		if editor_mode then
 | 
			
		||||
			editor_mode = false
 | 
			
		||||
		else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue