1

そのため、マウス左ボタン センサーとマウス オーバー センサーの 2 つのセンサーが接続された 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!" を出力します。 . ただし、ゲームでは、オブジェクト (クリックを逃しにくい地球など) をクリックすると、「何もヒットしませんでした!」と表示されるだけです。

センサーの使用方法に何か問題がありますか? 私のPythonはここで間違っていますか? controller.sensors['MouseOver'].hitObjectが常に型でNoneある理由

4

1 に答える 1

0

クリックするオブジェクトの物理タイプが「衝突なし」であってはなりません。「静的」が機能することは知っています。

幸運を。

于 2013-12-15T13:42:27.577 に答える