0

AndEngine を使用するのはこれが初めてで、Rectangle を作成しようとすると、その行でクラッシュします。ボタンに Rectangles を使用して、プレーヤーを左または右に移動しようとしています。ここでボタンのチュートリアルを見つけました: http://www.matim-dev.com/creating-leftright-game-controller-buttons.html。シーンにタッチ イベントを使用しようとしたところ、代わりにそこでクラッシュしました。私は長い間答えを探しましたが、まだ答えを見つけることができなかったので、今は完全に立ち往生しています. どんな助けでも大歓迎です。

HUD controller = new HUD();
    Rectangle left = new Rectangle(0, 0, (screenWidth / 2), (screenHeight), getVertexBufferObjectManager()) // It crashes right on this line.
    {
        @Override
        public boolean onAreaTouched(TouchEvent touchEvent, float X, float Y)
        {
            // Move left
            if (touchEvent.isActionDown())
            {
                isLeftTouched = true;
            }
            if (touchEvent.isActionUp())
            {
                isLeftTouched = false;
                player1.stop();
            }
            return true;
        }

        @Override
        public void onManagedUpdate(float secondsElapsed)
        {
            if (isLeftTouched)
            {
                // Execute your actions.
                player1.moveLeft();

            }
            super.onManagedUpdate(secondsElapsed);
        }
    };

    Rectangle right = new Rectangle(screenWidth / 2, 0, screenWidth / 2, screenHeight, getVertexBufferObjectManager())
    {
        @Override
        public boolean onAreaTouched(TouchEvent touchEvent, float X, float Y)
        {
            // Move right
            if (touchEvent.isActionDown())
            {
                isRightTouched = true;
            }
            if (touchEvent.isActionUp())
            {
                isRightTouched = false;
                player1.stop();
            }
            return true;
        }

        @Override
        public void onManagedUpdate(float secondsElapsed)
        {
            if (isRightTouched)
            {
                // Execute your actions.
                player1.moveRight();
            }
            super.onManagedUpdate(secondsElapsed);
        }
    };

    controller.registerTouchArea(left);
    controller.registerTouchArea(right);
    controller.attachChild(left);
    controller.attachChild(right);

    camera.setHUD(controller);

ログキャットは次のとおりです。

E/AndroidRuntime( 2440):    java.lang.RuntimeException: Unable  to start activity   ComponentInfo{com.teej1410.glider/  com.teej1410.glider.MainActivity}:  java.lang.NullPointerException
E/AndroidRuntime( 2440):    at  com.teej1410.glider.MainActivity.createControllers(MainActivity.java:169)
E/AndroidRuntime( 2440):    at  com.teej1410.glider.MainActivity.onCreateOther(MainActivity.java:132)
E/AndroidRuntime( 2440):    at  com.teej1410.glider.MainActivity.onCreateEngineOptions(MainActivity.java:   51)
W/ActivityManager(  434):   Force   finishing
4

1 に答える 1

1

それを私が直した。呼び出すのが早すぎた別のメソッドで Rectangles を作成しました。

于 2013-08-04T16:14:07.097 に答える