Godot 2D游戏子弹向上发射代码修改求助
修改子弹为垂直向上发射的解决方案
以下是修改后的完整代码,直接替换原有代码即可实现子弹垂直向上发射:
extends Area2D var move = Vector2.ZERO var look_vec = Vector2.ZERO var speed = 3 var duration = 5 func _ready(): connect("body_entered", self, "_on_body_entered") # 直接设置垂直向上的方向向量 look_vec = Vector2.UP func _physics_process(delta): # 固定方向移动,无需逐步趋近目标 move = look_vec.normalized() * speed position += move duration -= delta if duration <= 0 : queue_free() func _on_body_entered(body): if body.is_in_group("Player"): body.damaged(25) queue_free()
关键修改说明:
- 移除无用的
player变量:原代码中该变量用于计算指向玩家的方向,现在不需要追踪玩家位置,直接删除即可。 - 固定
look_vec为Vector2.UP:Godot 2D默认坐标系中,Vector2.UP对应坐标(0, -1)(Y轴向下为正),正好是垂直向上的方向。如果你的项目修改过Y轴方向(向上为正),则替换为Vector2.DOWN即可。 - 简化移动逻辑:因为方向固定,不需要用
move_toward做渐进式方向调整,直接用方向向量乘以速度得到移动值,避免了原逻辑中可能出现的随机方向错误。
内容的提问来源于stack exchange,提问作者Kazumi411
相关产品推荐
相关产品推荐

