kikito / gamera

A camera system for LÖVE

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problem with setPosition

flamendless opened this issue · comments

i need help with this:

--init
local active_camera = Gamera.new(0, 0, 1024, 512)

--in draw
local screen_x, screen_y, screen_w, screen_h = active_camera:getWindow()
local world_x, world_y, world_w, world_h = active_camera:getWorld()
local dx = Imgui.SliderInt("x", screen_x, 0, world_w)
local dy = Imgui.SliderInt("y", screen_y, 0, world_h)
print(dx, dy) --works
active_camera:setPosition(dx, dy)
print(active_camera:getWindow()) --should be updated, but prints 0, 0, 1024, 512 still

the position value of the window should change, but it returns to 0 :/

setPosition changes the x and y position of the Window (subset of World), but it resets to 0

ive tried

active_camera.x = dx
active_camera.y = dy

but instead of resetting to 0, it resets to 512 (half of 1024), because internally gamera computes position and width since (0,0) in camera coordinates is center

Sent from my HUAWEI GR5 2017 using FastHub

I think you misunderstood what position is and what window is in gamera.

Imagine a news reporter moving around on his car, shooting footage with their camera. And then imagine a person sitting on their living room, watching the news on their TV.

  • The coordinates the news camera is looking at is position.
  • The coordinates of the person watching the news on their living room is the window.

They are related, in a way, but not in the way you are thinking. If the position changes, the content showed on the window will change, but the window will not move.