diff --git a/lib/controls.lua b/lib/controls.lua index 652d26a..71a119e 100644 --- a/lib/controls.lua +++ b/lib/controls.lua @@ -17,6 +17,7 @@ controls.keymap = { cameraMoveRight = control("key", "d"), cameraMoveDown = control("key", "s"), cameraMoveScroll = control("mouse", "3"), + cameraAnimateTo = control('key', 't'), fullMana = control("key", "m"), select = control("mouse", "1"), endTurnTest = control("key", "e"), diff --git a/lib/level/camera.lua b/lib/level/camera.lua index 4040203..612a43b 100644 --- a/lib/level/camera.lua +++ b/lib/level/camera.lua @@ -87,6 +87,11 @@ function camera:detach() love.graphics.pop() end +--- @param position Vec3 +function camera:animateTo(position) + self.position = position +end + --- @return Camera local function new() return setmetatable({ diff --git a/main.lua b/main.lua index 26825d5..d3a1724 100644 --- a/main.lua +++ b/main.lua @@ -40,6 +40,13 @@ function love.update(dt) Tree.level.turnOrder:toggleTurns() end + -- для тестов camera:attachTo + -- удалить как только потребность в тестах исчезнет + if Tree.controls:isJustPressed("cameraAnimateTo") then + local mousePosition = Tree.level.camera:toWorldPosition(Vec3 { love.mouse.getX(), love.mouse.getY() }) + Tree.level.camera:animateTo(mousePosition) + end + Tree.controls:cache() local t2 = love.timer.getTime()