From f021446439d387e14b4896b529bcced5ffc71f15 Mon Sep 17 00:00:00 2001 From: bizcochito Date: Tue, 18 Jan 2022 18:46:41 +0100 Subject: [PATCH 1/2] Made keybind editing "backend" --- data/scripts/entities/player.lua | 16 +++++------ data/scripts/keybind.lua | 47 +++++++++++++++++++++++++------- main.lua | 2 +- 3 files changed, 46 insertions(+), 19 deletions(-) diff --git a/data/scripts/entities/player.lua b/data/scripts/entities/player.lua index 4ea1e5f..4798690 100644 --- a/data/scripts/entities/player.lua +++ b/data/scripts/entities/player.lua @@ -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 diff --git a/data/scripts/keybind.lua b/data/scripts/keybind.lua index 6d42b06..4f2a349 100644 --- a/data/scripts/keybind.lua +++ b/data/scripts/keybind.lua @@ -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() diff --git a/main.lua b/main.lua index 15b32fb..428ee8e 100644 --- a/main.lua +++ b/main.lua @@ -48,7 +48,7 @@ function love.load() table.insert(LoadedEntities,Decoration:New(200,89,animation.decoration.candelabra,80)) table.insert(LoadedEntities,Fairy:New(200,88)) - gravity = 0.05 + gravity = 0.2 end function love.update(dt) From e8477e87505ff2a67705f3a5d2ca4b2b501b360d Mon Sep 17 00:00:00 2001 From: bizcochito Date: Tue, 18 Jan 2022 19:45:57 +0000 Subject: [PATCH 2/2] Update 'main.lua' --- main.lua | 284 +++++++++++++++++++++++++++---------------------------- 1 file changed, 142 insertions(+), 142 deletions(-) diff --git a/main.lua b/main.lua index 428ee8e..b05ff7c 100644 --- a/main.lua +++ b/main.lua @@ -1,142 +1,142 @@ -function love.load() - - 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 - 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 -end +function love.load() + + 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.05 +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 + 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 +end