add cursor arrow
This commit is contained in:
parent
055b3a232f
commit
4920bcaa16
@ -121,7 +121,7 @@ bones/6/rotation = Quaternion(-0.0323581, 2.46001e-07, 8.00608e-09, 0.999476)
|
||||
bones/7/rotation = Quaternion(0.123965, -2.40098e-07, -2.92456e-09, 0.992287)
|
||||
bones/7/scale = Vector3(1, 1, 1)
|
||||
bones/8/rotation = Quaternion(-0.0917916, -2.67583e-15, 2.18848e-08, 0.995778)
|
||||
bones/9/position = Vector3(-0.0739514, 0.0118088, 0.0814874)
|
||||
bones/9/position = Vector3(-0.074, 0.011816, 0.0814253)
|
||||
bones/9/rotation = Quaternion(1.15202e-07, 0.707107, 0.707107, -5.33851e-08)
|
||||
bones/9/scale = Vector3(1, 1, 1)
|
||||
bones/21/rotation = Quaternion(0.19747, 0.678974, 0.678974, -0.19747)
|
||||
@ -135,7 +135,7 @@ bones/45/scale = Vector3(1, 1, 1)
|
||||
bones/46/rotation = Quaternion(-0.0181733, 2.38379e-07, 1.14098e-08, 0.999835)
|
||||
bones/47/rotation = Quaternion(-1.20807e-07, 0.993087, -0.117383, 7.85287e-07)
|
||||
bones/49/rotation = Quaternion(-0.034235, -3.57418e-07, 8.86969e-08, 0.999414)
|
||||
bones/50/rotation = Quaternion(-0.0755608, -0.703058, -0.703058, 0.0755608)
|
||||
bones/50/rotation = Quaternion(0.0873136, -0.701695, -0.701695, -0.0873136)
|
||||
bones/51/rotation = Quaternion(0.403888, -2.98082e-07, -3.85178e-07, 0.914808)
|
||||
bones/51/scale = Vector3(1, 1, 1)
|
||||
bones/52/rotation = Quaternion(-0.512846, 3.82068e-07, 4.27952e-07, 0.858481)
|
||||
|
||||
@ -6,6 +6,8 @@
|
||||
[ext_resource type="PackedScene" uid="uid://cksoaevb5sloo" path="res://scenes/enemies/projectile_spawner.tscn" id="4_84n74"]
|
||||
|
||||
[sub_resource type="Environment" id="Environment_wctar"]
|
||||
tonemap_mode = 3
|
||||
tonemap_white = 16.0
|
||||
|
||||
[node name="Test" type="Node"]
|
||||
|
||||
|
||||
@ -59,3 +59,20 @@ grow_vertical = 2
|
||||
pivot_offset = Vector2(-14, 7)
|
||||
texture = ExtResource("1_77wok")
|
||||
expand_mode = 1
|
||||
|
||||
[node name="CursorArrow" type="TextureRect" parent="CursorBase"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = 14.0
|
||||
offset_top = -4.0
|
||||
offset_right = 43.0
|
||||
offset_bottom = 4.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
pivot_offset = Vector2(-14, 4)
|
||||
texture = ExtResource("1_77wok")
|
||||
expand_mode = 1
|
||||
|
||||
@ -7,6 +7,7 @@ var _side: float
|
||||
@onready var _base: Control = $CursorBase
|
||||
# @onready var _circle: Control = $CursorBase/CursorCircle
|
||||
@onready var _bat: Control = $CursorBase/CursorBat
|
||||
@onready var _arrow: Control = $CursorBase/CursorArrow
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@ -25,7 +26,10 @@ 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)
|
||||
_base.position = cursor_pos_screen - _base.size / 2
|
||||
_base.position = (
|
||||
cursor_pos_screen.clamp(Vector2.ZERO, get_viewport().get_visible_rect().size)
|
||||
- _base.size / 2
|
||||
)
|
||||
|
||||
_side = lerpf(
|
||||
_side,
|
||||
@ -33,13 +37,13 @@ func _process(delta: float) -> void:
|
||||
side_change_speed * delta
|
||||
)
|
||||
|
||||
var rotation_point_world := (
|
||||
cursor_pos_world
|
||||
+ player.aiming.aim_offset.normalized().rotated(Vector3.UP, _side)
|
||||
var aim_offset_normalized := player.aiming.aim_offset.normalized()
|
||||
var bat_rotation_point_screen := Referencer.main_camera.unproject_position(
|
||||
cursor_pos_world + aim_offset_normalized.rotated(Vector3.UP, _side)
|
||||
)
|
||||
var rotation_point_screen := Referencer.main_camera.unproject_position(
|
||||
rotation_point_world
|
||||
var arrow_rotation_point_screen := Referencer.main_camera.unproject_position(
|
||||
cursor_pos_world + aim_offset_normalized
|
||||
)
|
||||
|
||||
var angle := cursor_pos_screen.angle_to_point(rotation_point_screen)
|
||||
_bat.rotation = angle
|
||||
_bat.rotation = cursor_pos_screen.angle_to_point(bat_rotation_point_screen)
|
||||
_arrow.rotation = cursor_pos_screen.angle_to_point(arrow_rotation_point_screen)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user