我正在 Godot 3.1 中制作一个自上而下的 2D 游戏。在玩家向其注视的地方射击子弹的地方。
我正在使用 Godot 3.1 和 Gdscript。我有一个bullet
包含以下节点的场景
Area2D
> Sprite
> CollisionShape2D
> Timer
使用此代码,我使子弹移动
func shoot():
if canShoot:
canShoot = false
var current_rotation = Vector2(1, 0).rotated($".".global_rotation)
emit_signal('shoot', Bullet, $".".global_position, current_rotation)
func _bulletShoot(Bullet, _position, _direction):
var bulletInstance = Bullet.instance()
add_child(bulletInstance)
bulletInstance.start(_position, _direction)
func start(_position, _direction):
direction = _direction
position = _position
rotation = _position.angle()
velocity = _position * speed
func _physics_process(delta):
position += velocity * delta * direction
但是速度并不总是相同的,具体取决于我拍摄的方向。有没有办法解决它?
我希望子弹以恒定的速度朝着它发射的方向前进,而不会改变它的发射方向。
发生的情况是,如果我将它指向 0°,子弹会变慢,如果我将它指向 180°,它会更快。