You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:55:27