add cursor screen corner inset for controller

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

View File

@ -1,6 +1,7 @@
extends CanvasLayer
@export var side_change_speed: float = 15
@export var screen_inset: float = 100
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_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 = (
cursor_pos_screen.clamp(Vector2.ZERO, get_viewport().get_visible_rect().size)
- _base.size / 2
cursor_pos_screen.clamp(clamp_corner_min, clamp_corner_max) - _base.size / 2
)
_side = lerpf(