Я ищу спрайт (пуля, если быть более точным), чтобы выйти из другого спрайта (конца пистолета), щелкнув левой кнопкой мыши, и затем пуля пошла в направлении, гдемышь была, а потом не менялась положение после того, как щелчок произошел. Я объяснил это довольно плохо, но в основном я ищу пулю, чтобы двигаться в направлении мыши, и один раз щелкнул, чтобы не изменить положение и следовать в этом направлении, пока он не исчезнет с экрана. Хороший пример того, что я пытаюсь сделать, - это как стрельба и пули работают в игре под названием Terraria.
Я пытался выяснить это с помощью Position2D. У меня есть Position2D в конце пистолета, где я хочу, чтобы пуля загрузилась. Я также пытался исследовать через Google и Youtube. Прямо сейчас у меня есть спрайт (рука), который вращается в зависимости от положения мыши, и спрайт (пистолет), прикрепленный к руке. Я пытаюсь использовать информацию о руке, чтобы найти направление, но я не могу понять это. Я начинающий с кодирования в целом.
Это код для моей руки, который вращается в зависимости от положения мыши:
extends Sprite
var Mouse_Position
func _process(delta):
Mouse_Position = get_local_mouse_position()
rotation += Mouse_Position.angle()*0.2
Код в настоящее время для моей пули:
extends Area2D
const SPEED = 100
var velocity = Vector2()
var Mouse_Position
func _physics_process(delta):
velocity.x = SPEED * delta
Mouse_Position = get_local_mouse_position()
rotation += Mouse_Position.angle()*0.2
translate(velocity)
func _on_VisibilityNotifier2D_screen_exited():
queue_free()
Также здесь некоторые дополнительныедля загрузки в:
const BULLET = preload("res://Bullet.tscn")
if Input.is_action_just_pressed("shoot"):
var bullet = BULLET.instance()
get_parent().add_child(bullet)
bullet.position = $Position2D.global_position