bge python 如果语句 获取线性速度

0 投票
1 回答
718 浏览
提问于 2025-04-19 02:07

我刚开始接触脚本和编程,虽然对一些基本概念有点了解,但还是需要一些帮助。我不太确定自己搜索的词是不是正确的,想要做的事情有点模糊。

我想在Blender游戏引擎2.71中实现一个简单的if语句。具体来说,我需要获取一个物体的全局线性速度,然后检查这个速度在所有方向上是否都等于0。如果是这样的话,我想在xyz三个方向上增加一些线性速度。

这是我现在写的代码,但当然它并没有工作:(请不要讨厌我,我还是个新手)

import bge
from bge import logic

scene = logic.getCurrentScene()

cube = logic.getCurrentController().owner
speed = cube.getLinearVelocity()

if all(speed == 0):
    cube.setLinearVelocity([0, 0, 10], False)

1 个回答

1

因为你只是在检查速度为零的情况,所以你可以使用:

if sum(speed) == 0:
    cube.setLinearVelocity([0, 0, 10], False)

这里的 sum() 是 Python 内置的一个函数,用来计算一个 list 中所有数值的总和。

撰写回答