1

所以我有一个 Python 控制器,它连接了两个传感器,一个鼠标左键传感器和一个鼠标悬停传感器,两者都启用了频率为 0 的 TRUE 级别触发。Python 控制器链接到如下所示的脚本:

# Gather information.
scene = GameLogic.getCurrentScene();
camera = scene.active_camera;
controller = GameLogic.getCurrentController();

# Change to Earth camera.
clicked = controller.sensors['MouseClick'].positive;
if clicked:
    hitObject = controller.sensors['MouseOver'].hitObject;
    if hitObject is not None:
        print(hitObject.name);
        if(hitObject.name == 'Earth'):
            scene.active_camera = 'Earth Camera';
    else:
        print('Nothing hit!');

基本上,它应该检查是否单击了鼠标的左键,如果是,则抓住鼠标悬停传感器的 hitObject 并打印出它的名称,如果鼠标悬停在对象上是 None,则打印出“Nothing hit!” . 然而,在游戏中,当我点击一个物体(例如地球,很难错过点击)时,它所做的只是打印出“Nothing hit!”。

我使用传感器的方式有问题吗?我的 Python 在这里不正确吗?为什么controller.sensors['MouseOver'].hitObject总是类型None

4

1 回答 1

0

您要单击的对象不应具有物理类型“无碰撞”。我知道“静态”有效。

祝你好运。

于 2013-12-15T13:42:27.577 回答