我正在寻找一个精灵(更具体地说是子弹),通过单击鼠标左键从另一个精灵(枪的末端)中出来,然后让子弹朝鼠标所在的方向移动,然后在点击发生后不改变位置。我解释得很糟糕,但基本上我正在寻找子弹去鼠标的方向,一旦点击,就不会改变位置并跟随那个方向直到它离开屏幕。我正在尝试做的一个很好的例子是射击和子弹在一个名为 Terraria 的游戏中是如何工作的。
我一直在尝试使用 Position2D 来解决这个问题。我在枪的末端有 Position2D,我想把子弹装进去。我也尝试通过谷歌和 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