add cursor bat indicator rotation perspective adjustment
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user