add cursor screen corner inset for controller

This commit is contained in:
2025-02-27 04:15:05 +10:00
parent 4f0a7094cd
commit e4ea6eb904

View File

@@ -1,6 +1,7 @@
extends CanvasLayer extends CanvasLayer
@export var side_change_speed: float = 15 @export var side_change_speed: float = 15
@export var screen_inset: float = 100
var _side: float var _side: float
@@ -26,9 +27,15 @@ func _process(delta: float) -> void:
var cursor_pos_world := player.attack.global_position + player.aiming.aim_offset var cursor_pos_world := player.attack.global_position + player.aiming.aim_offset
var cursor_pos_screen := Referencer.main_camera.unproject_position(cursor_pos_world) var cursor_pos_screen := Referencer.main_camera.unproject_position(cursor_pos_world)
var clamp_corner_min := Vector2.ZERO
var clamp_corner_max := get_viewport().get_visible_rect().size
if Inputer.mode == Inputer.Mode.CONTROLLER:
clamp_corner_min += Vector2(screen_inset, screen_inset)
clamp_corner_max -= Vector2(screen_inset, screen_inset)
_base.position = ( _base.position = (
cursor_pos_screen.clamp(Vector2.ZERO, get_viewport().get_visible_rect().size) cursor_pos_screen.clamp(clamp_corner_min, clamp_corner_max) - _base.size / 2
- _base.size / 2
) )
_side = lerpf( _side = lerpf(