From f3da1b9c19ab0337ee7852951bb5502baeb21d3b Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Tue, 18 Oct 2022 05:39:20 +0200 Subject: fix unproject() --- main/camera.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'main') diff --git a/main/camera.cpp b/main/camera.cpp index c3a3b2f7..5b8c4b52 100644 --- a/main/camera.cpp +++ b/main/camera.cpp @@ -56,8 +56,10 @@ void app::recalc_cursor_tile() global_coords app::pixel_to_tile(Vector2d position) const { + constexpr Vector2d pixel_size{dTILE_SIZE[0], dTILE_SIZE[1]}; + constexpr Vector2d half{.5, .5}; const Vector2d px = position - Vector2d{windowSize()}*.5 - _shader.camera_offset()*.5; - const Vector2d vec = tile_shader::unproject(px) / Vector2d{dTILE_SIZE[0]*.5, dTILE_SIZE[1]*.5} + Vector2d{.5, .5}; + const Vector2d vec = tile_shader::unproject(px) / pixel_size + half; const auto x = (std::int32_t)std::floor(vec[0]), y = (std::int32_t)std::floor(vec[1]); return { x, y }; } -- cgit v1.2.3