Made HasPressed function and implemented it

This commit is contained in:
bizcochito 2022-01-19 14:55:15 +01:00
parent 0305dd4fc2
commit 03793e1fb8
3 changed files with 47 additions and 35 deletions

View File

@ -73,16 +73,16 @@ function Player:Smart()
if math.abs(self.vel.x) < self.zeroSpeed then self.vel.x = 0 end 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 self.move_x = -self.moveSpeed
elseif Keybind:Check(Keybind.move.right) then elseif Keybind:CheckDown(Keybind.move.right) then
self.move_x = self.moveSpeed self.move_x = self.moveSpeed
else else
self.move_x = 0 self.move_x = 0
end end
self.vel.x = self.vel.x self.vel.x = self.vel.x
if Keybind:Check(Keybind.move.jump) then if Keybind:CheckDown(Keybind.move.jump) then
if self.isOnGround then if self.isOnGround then
self.vel.y = -self.jumpImpulse self.vel.y = -self.jumpImpulse
end end
@ -90,18 +90,18 @@ function Player:Smart()
end end
self.dashCooldownTimer = math.max(0,self.dashCooldownTimer - current_dt) 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 if self.dashCooldownTimer == 0
and not self.isDashing and not self.isDashing
and self.dashCount > 0 then and self.dashCount > 0 then
self.dashCount = self.dashCount - 1 self.dashCount = self.dashCount - 1
self.isDashing = true self.isDashing = true
local vertical = 0 local vertical = 0
if Keybind:Check(Keybind.move.down) then vertical = vertical + 1 end if Keybind:CheckDown(Keybind.move.down) then vertical = vertical + 1 end
if Keybind:Check(Keybind.move.up) then vertical = vertical - 1 end if Keybind:CheckDown(Keybind.move.up) then vertical = vertical - 1 end
local horizontal = 0 local horizontal = 0
if Keybind:Check(Keybind.move.right) then horizontal = horizontal + 1 end if Keybind:CheckDown(Keybind.move.right) then horizontal = horizontal + 1 end
if Keybind:Check(Keybind.move.left) then horizontal = horizontal - 1 end if Keybind:CheckDown(Keybind.move.left) then horizontal = horizontal - 1 end
if horizontal == 0 and vertical == 0 then if horizontal == 0 and vertical == 0 then
horizontal = self.sprite_flip.x horizontal = self.sprite_flip.x

View File

@ -3,8 +3,8 @@ Keybind.move = {}
Keybind.menu = {} Keybind.menu = {}
Keybind.debug = {} Keybind.debug = {}
function Keybind:Check(action) function Keybind:CheckDown(action)
for _, keyname in pairs(action) do for _, keyname in pairs(action.keys) do
if type(keyname) == "string" then if type(keyname) == "string" then
if love.keyboard.isDown(keyname) then return true end if love.keyboard.isDown(keyname) then return true end
else else
@ -14,43 +14,55 @@ function Keybind:Check(action)
return false return false
end 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 _, 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 if key == keyname then return true end
end end
end end
return false return false
end end
function Keybind:Add(action, key) function Keybind:AddKey(action, key)
table.insert(action, key) table.insert(action.keys, key)
end end
function Keybind:Change(action, position, key) function Keybind:ChangeKey(action, position, key)
action[position] = key action.keys[position] = key
end end
function Keybind:Remove(action) function Keybind:RemoveKeys(action)
action = {} action.keys = {}
end end
function Keybind:Default() function Keybind:Default()
--Menu --Menu
Keybind.menu.pause = {"escape"} Keybind.menu.pause= { keys = {"escape"}}
--Move --Move
Keybind.move.left = {"left", "a"} Keybind.move.left = { keys = {"left", "a"}}
Keybind.move.right = {"right", "d"} Keybind.move.right = { keys = {"right", "d"}}
Keybind.move.up = {"up", "w"} Keybind.move.up = { keys = {"up", "w"}}
Keybind.move.down = {"down", "s"} Keybind.move.down = { keys = {"down", "s"}}
Keybind.move.jump = {"z", "space"} Keybind.move.jump = { keys = {"z", "space"}}
Keybind.move.attack = {"x", 1} Keybind.move.attack = { keys = {"x", 1}}
Keybind.move.dash = {"c", 2} Keybind.move.dash = { keys = {"c", 2}}
--Debug --Debug
Keybind.debug.debug = {"f1"} Keybind.debug.debug = { keys = {"f1"}}
Keybind.debug.reposition = {"f2"} Keybind.debug.reposition = { keys = {"f2"}}
Keybind.debug.reload = {"f3"} Keybind.debug.reload = { keys = {"f3"}}
Keybind.debug.editor = {"f4"} Keybind.debug.editor = { keys = {"f4"}}
end end
-- Set default values at start -- Set default values at start

View File

@ -66,7 +66,7 @@ function love.update(dt)
--keypressed --keypressed
if Keybind:Check(Keybind.menu.pause) then if Keybind:HasPressed(Keybind.menu.pause) then
if do_pause then if do_pause then
do_pause = false do_pause = false
else else
@ -75,7 +75,7 @@ function love.update(dt)
end end
end end
if Keybind:Check(Keybind.debug.debug) then if Keybind:HasPressed(Keybind.debug.debug) then
if debug then if debug then
debug = false debug = false
debug_collision = true debug_collision = true
@ -86,17 +86,17 @@ function love.update(dt)
end end
end end
if Keybind:Check(Keybind.debug.reposition) then if Keybind:HasPressed(Keybind.debug.reposition) then
if not editor_mode then if not editor_mode then
main_Player.pos.x, main_Player.pos.y = 16,-10 main_Player.pos.x, main_Player.pos.y = 16,-10
end end
end end
if Keybind:Check(Keybind.debug.reload) then if Keybind:HasPressed(Keybind.debug.reload) then
LoadLevel() LoadLevel()
end end
if Keybind:Check(Keybind.debug.editor) then if Keybind:HasPressed(Keybind.debug.editor) then
if editor_mode then if editor_mode then
editor_mode = false editor_mode = false
else else