Godot, как исправить код стрельбы, но чтобы строго по горизонтали и вертикали относительно мыши
Хочу сделать top down стрельбу, чтобы игрок поворачивался в направление, в которое стреляет, и чтобы пули выходили строго либо по горизонтале, либо по вертикале. Написала такой код, но пули не появляются. Вот значение двух переменных из скрипта:
var shoot_speed = 20
var bullet1 = preload("res://Unit/bullet_1.tscn")

Переменную direction задать не могу, так как она используется для перемещения персонажа
По дате
По Рейтингу
123456789101112131415161718192021222324252627
func _input(event):
if Input.is_action_just_pressed("shoot1"):
var b1 = bullet1.instantiate()
get_parent().add_child(b1) # Важно добавить пулю на сцену
b1.global_position = global_position # Устанавливаем позицию пули
var mouse_pos = get_global_mouse_position()
var diff = mouse_pos - global_position
# Определяем преобладающее направление (горизонталь или вертикаль)
if abs(diff.x) > abs(diff.y):
# Горизонтальное движение
if diff.x > 0:
b1.linear_velocity = Vector2(1, 0) * shoot_speed
rotation = 0 # Поворот вправо
else:
b1.linear_velocity = Vector2(-1, 0) * shoot_speed
rotation = PI # Поворот влево
else:
# Вертикальное движение
if diff.y > 0:
b1.linear_velocity = Vector2(0, 1) * shoot_speed
rotation = PI/2 # Поворот вниз
else:
b1.linear_velocity = Vector2(0, -1) * shoot_speed
rotation = -PI/2 # Поворот вверх