在Blender 的游戏引擎中使用character物理时,发现控制character移动时,如果角色静止在一个特别小的斜坡上,都会发生滑动现象,尝试着增加了地面的摩擦力,问题依然存在
原因是角色在静止不动时,受重力影响向下滑动。角色的所有运动全是靠按键驱动,所以可以写一个脚本,判断当角色在地面上且没有按键时,将重力设置为 0,即不受重力影响
具体步骤
-
首先为角色添加Character物理属性(中文翻译应该是角色)
-
在逻辑编辑器中为角色添加以下节点
-
anti slide脚本:
import bge
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
ground = cont.sensors['Collision']
key = cont.sensors['Keyboard']
char=bge.constraints.getCharacter(own)
if key.positive:
char.gravity = 29
else:
if ground.positive:
char.gravity = 0
else:
char.gravity = 29
main()