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
怎么理解“到目标位置就转向这个代码”
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 「已注销」 2023-01-18 19:28关注
这段代码是在游戏引擎 Godot 中控制一个物体在屏幕上来回移动的代码。
变量 speed 和 moveDist 分别控制物体的移动速度和移动距离。
物体在游戏开始时的坐标被记录在 startX 变量中,而目标坐标被记录在 targetX 变量中。
_physics_process 函数是 Godot 的物理运算函数,会在每一帧被执行。在这个函数中,物体的坐标会被不断地更新到目标坐标的位置,使物体移动。当物体到达目标坐标时,targetX 的值会被更新,使物体继续移动。
move_to 函数是帮助物体移动的辅助函数,它会在 _physics_process 中被调用。当前的物体坐标和目标坐标作为参数传入,通过比较当前坐标和目标坐标的值,来确定物体应该向哪个方向移动。并且每次移动的距离是由 step 参数指定的。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 python代码,帮调试
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条