summaryrefslogtreecommitdiff
path: root/scene
diff options
context:
space:
mode:
authorEevee <eevee.github@veekun.com>2020-02-29 16:50:33 -0700
committerGitHub <noreply@github.com>2020-02-29 16:50:33 -0700
commit40816574ac789af9cfcc061eea5bd91aa1079f6b (patch)
treec5ee78b77c4ffe3acc8b26308a9304c0affe1d20 /scene
parent2a15304572516a8df2dabd9561c959832badf60f (diff)
Fix inverted use of Camera2D.offset_v
The code above for horizontal movement uses the right margin (_positive_ x direction) when the offset is negative, but vertical movement uses the top margin (_negative_ y direction) when the offset is negative. The resulting problem is easily seen in the editor — set the drag margins to be asymmetrical, turn on drawing the drag margins, and slide the offsets from -1 to 1 and back. The horizontal offset moves the camera's center between the left and right margins, but the vertical offset gets them backwards and will move the camera outside the margins entirely.
Diffstat (limited to 'scene')
-rw-r--r--scene/2d/camera_2d.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp
index 1419fb561e..a8860c3d81 100644
--- a/scene/2d/camera_2d.cpp
+++ b/scene/2d/camera_2d.cpp
@@ -128,9 +128,9 @@ Transform2D Camera2D::get_camera_transform() {
} else {
if (v_ofs < 0) {
- camera_pos.y = new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_TOP] * v_ofs;
- } else {
camera_pos.y = new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_BOTTOM] * v_ofs;
+ } else {
+ camera_pos.y = new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_TOP] * v_ofs;
}
v_offset_changed = false;