diff --git a/components/Scenes/World.tscn b/components/Scenes/World.tscn index 7100a24..9704f1a 100644 --- a/components/Scenes/World.tscn +++ b/components/Scenes/World.tscn @@ -86,6 +86,8 @@ limit_top = -1800 limit_right = 2400 limit_bottom = 1800 position_smoothing_enabled = true +drag_horizontal_enabled = true +drag_vertical_enabled = true editor_draw_limits = true script = ExtResource("5_mk7bv") constantOffset = Vector2(0, -80) diff --git a/scripts/Tools/Managers/CameraManager.gd b/scripts/Tools/Managers/CameraManager.gd index a87bff0..35f0c5d 100644 --- a/scripts/Tools/Managers/CameraManager.gd +++ b/scripts/Tools/Managers/CameraManager.gd @@ -17,6 +17,7 @@ func _physics_process(_delta): if is_instance_valid(UIState.player): position = UIState.player.position + constantOffset position += MathTool.sampleInCircle(shakeIntensity) + position += MouseTool.getPositionByScreen(Vector2.ONE * 0.5, self ) / 2 static func shake(millseconds: float, intensity: float = 10, steper: Callable = func(currentValue, _totalValue, _restPercent): return currentValue): if StarterPanel.buildingShader: return diff --git a/scripts/Tools/MouseTool.gd b/scripts/Tools/MouseTool.gd new file mode 100644 index 0000000..8b8307f --- /dev/null +++ b/scripts/Tools/MouseTool.gd @@ -0,0 +1,5 @@ +class_name MouseTool + +static func getPositionByScreen(anchor: Vector2, by: Node): + var viewport = by.get_viewport() + return viewport.get_mouse_position() - viewport.get_visible_rect().size * anchor diff --git a/scripts/Tools/MouseTool.gd.uid b/scripts/Tools/MouseTool.gd.uid new file mode 100644 index 0000000..5433630 --- /dev/null +++ b/scripts/Tools/MouseTool.gd.uid @@ -0,0 +1 @@ +uid://yf2h5ni3gobm