2201_75789358 2023-01-18 17:32 采纳率: 100%
浏览 20
已结题

怎么理解“到目标位置就转向这个代码”

export var speed : int = 100
export var moveDist : int = 100

onready var startX : float = position.x
onready var targetX : float = position.x + moveDist 
func _physics_process (delta):

    # 想目标位置移动
    position.x = move_to(position.x, targetX, speed * delta)

    # 到目标位置就转向
    if position.x == targetX:
        if targetX == startX:
            targetX = position.x + moveDist
        else:
            targetX = startX

# 以"step"为增量进行移动向“to”的位置移动
func move_to (current, to, step):

    var new = current

    # 判断当前“current”到没到“to”,没到就移动到“to”
    if new < to:
        new += step

        if new > to:
            new = to
    # 来回往复移动
    else:
        new -= step

        if new < to:
            new = to

    return new 作者:溜溜球阿杜 https://www.bilibili.com/read/cv19455366?spm_id_from=333.1007.0.0 出处:bilibili
  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-01-18 19:28
    关注

    这段代码是在游戏引擎 Godot 中控制一个物体在屏幕上来回移动的代码。
    变量 speed 和 moveDist 分别控制物体的移动速度和移动距离。
    物体在游戏开始时的坐标被记录在 startX 变量中,而目标坐标被记录在 targetX 变量中。
    _physics_process 函数是 Godot 的物理运算函数,会在每一帧被执行。在这个函数中,物体的坐标会被不断地更新到目标坐标的位置,使物体移动。当物体到达目标坐标时,targetX 的值会被更新,使物体继续移动。
    move_to 函数是帮助物体移动的辅助函数,它会在 _physics_process 中被调用。当前的物体坐标和目标坐标作为参数传入,通过比较当前坐标和目标坐标的值,来确定物体应该向哪个方向移动。并且每次移动的距离是由 step 参数指定的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月26日
  • 已采纳回答 1月18日
  • 修改了问题 1月18日
  • 创建了问题 1月18日

悬赏问题

  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动