diff options
| -rw-r--r-- | main.lua | 5 | ||||
| -rw-r--r-- | src/init.lua | 5 | ||||
| -rw-r--r-- | src/objs/player.lua | 20 |
3 files changed, 20 insertions, 10 deletions
@@ -22,7 +22,10 @@ function love.load() local tilemap = new_tilemap(64, 64) scn.tilemap = tilemap - set_tile(tilemap, 0, 0, 1) + + for x=2, 12 do + set_tile(tilemap, x, 10, 1) + end player = new_player(100, 100) diff --git a/src/init.lua b/src/init.lua index 246147a..18299fd 100644 --- a/src/init.lua +++ b/src/init.lua @@ -10,12 +10,13 @@ require "src.room_editor" SCR_WIDTH = 320 SCR_HEIGHT = 180 +GRAVITY = 1000 +TERMINAL_VELOCITY = 900 WindowScale = 1 register_input("Left", {{"key", "left"}, {"key", "a"}}) register_input("Right", {{"key", "right"}, {"key", "d"}}) -register_input("Down", {{"key", "down"}, {"key", "s"}}) -register_input("Up", {{"key", "up"}, {"key", "w"}}) +register_input("Jump", {{"key", "space"}}) register_input("Right_Click", {{"mouse", 2}}) register_input("Left_Click", {{"mouse", 1}}) diff --git a/src/objs/player.lua b/src/objs/player.lua index 58e5f3a..1d89f8a 100644 --- a/src/objs/player.lua +++ b/src/objs/player.lua @@ -1,4 +1,6 @@ PLAYER_SPEED = 100 +PLAYER_ACCEL = 30 +PLAYER_JUMP_FORCE = 350 register_comp("Body", function (ent, x, y, w, h, opts) ent.vx = 0 @@ -15,17 +17,21 @@ function body_sys(ent, dt) end function player_movement_sys(player, dt) - local inpx, inpy = input_direction("Left", "Right", "Up", "Down") - inpx, inpy = normalize(inpx, inpy) - player.vx = dlerp(player.vx, inpx * PLAYER_SPEED, 25 * dt) - player.vy = dlerp(player.vy, inpy * PLAYER_SPEED, 25 * dt) + local inputx = bton(is_input_pressed("Right")) - bton(is_input_pressed("Left")) + + player.vx = dlerp(player.vx, inputx * PLAYER_SPEED, PLAYER_ACCEL * dt) + player.vy = math.min(player.vy + GRAVITY * dt, TERMINAL_VELOCITY) + + if player.box:touching_down() and is_input_just_pressed("Jump") then + player.vy = -PLAYER_JUMP_FORCE + end end function new_player(x, y) local ent = new_entity() - add_comp(ent, "Body", x, y, 16, 16, { - offsetx = -8, - offsety = -8, + add_comp(ent, "Body", x, y, 8, 14, { + offsetx = -4, + offsety = -6, layers = {}, mask = {"hard"}, }) |
