PLAYER_SPEED = 100 register_comp("Body", function (ent, x, y) ent.x = x ent.y = y ent.vx = 0 ent.vy = 0 end) register_comp("Player", TAGCOMP) function body_sys(ent, dt) ent.x = ent.x + ent.vx * dt ent.y = ent.y + ent.vy * dt end function draw_sys(ent) love.graphics.circle("fill", ent.x, ent.y, 8) 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) end function new_player(x, y) local ent = new_entity() add_comp(ent, "Body", x, y) add_comp(ent, "Player") end