add cursor bat indicator rotation perspective adjustment

This commit is contained in:
2025-02-27 03:19:11 +10:00
parent 359f9402bc
commit 055b3a232f
2 changed files with 18 additions and 17 deletions

View File

@@ -8,8 +8,9 @@ var _side: float
# @onready var _circle: Control = $CursorBase/CursorCircle
@onready var _bat: Control = $CursorBase/CursorBat
# func _ready() -> void:
# Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
func _ready() -> void:
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
func _process(delta: float) -> void:
@@ -20,25 +21,25 @@ func _process(delta: float) -> void:
return
_bat.visible = true
var player_pos_world := Referencer.player.attack.global_position
var player_pos_screen := Referencer.main_camera.unproject_position(player_pos_world)
var cursor_pos_world := player_pos_world + Referencer.player.aiming.aim_offset
var player := Referencer.player
var cursor_pos_world := player.attack.global_position + player.aiming.aim_offset
var cursor_pos_screen := Referencer.main_camera.unproject_position(cursor_pos_world)
_base.position = cursor_pos_screen - _base.size / 2
_side = lerpf(
_side,
(
(PI / 2.0)
* (
1.0
if Referencer.player.attack.side == PlayerAttack.Side.RIGHT
else -1.0
)
),
(PI / 2.0) * (1.0 if player.attack.side == PlayerAttack.Side.LEFT else -1.0),
side_change_speed * delta
)
var angle := (
player_pos_screen.angle_to_point(_base.position + _base.size / 2) + _side
var rotation_point_world := (
cursor_pos_world
+ player.aiming.aim_offset.normalized().rotated(Vector3.UP, _side)
)
var rotation_point_screen := Referencer.main_camera.unproject_position(
rotation_point_world
)
var angle := cursor_pos_screen.angle_to_point(rotation_point_screen)
_bat.rotation = angle