5

子シーンのスクロールに問題があります。タッチ イベントでスクロールしようとしている CameraScene を作成しました。私の子シーンはスクロールしませんが、エンジンに接続されたカメラをスクロールすると、親シーンは正常にスクロールします。

では、親のシーンにアタッチされたオブジェクトがスクロールせずに、子のシーンをスクロールするにはどうすればよいでしょうか?

public StatsScene(Context context, VertexBufferObjectManager vbo) {
    super(new SmoothCamera(0, 0, WITDH, HEIGHT, 0, SPEEDY, 0));

    this.setOnSceneTouchListener(new IOnSceneTouchListener() {
        @Override
        public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
            if(pSceneTouchEvent.getAction() == MotionEvent.ACTION_DOWN) {
                mTouchY = pSceneTouchEvent.getMotionEvent().getY();
            }
            else if(pSceneTouchEvent.getAction() == MotionEvent.ACTION_MOVE) {
                float newY = pSceneTouchEvent.getMotionEvent().getY();

                mTouchOffsetY = (newY - mTouchY);

                float newScrollX = getCamera().getCenterX();
                float newScrollY = getCamera().getCenterY() - mTouchOffsetY;

                getCamera().setCenter(newScrollX, newScrollY);

                mTouchY = newY;
            }
            return true;
        }
    });
}
4

2 に答える 2

0

私は AndEngine にあまり興味がなく、あなたの問題が正しいかどうかわかりません (あなたのコードでは "myparents" または "childscene" については何もありません) が、何かがシーンにアタッチされている場合、これはそれが動くことを意味しますそれと。子供たちを反対方向にスクロールして位置を維持することもできますが、長期的には問題が発生する可能性があります. 可能であれば、スクロール シーンとオブジェクトを分離してみてください。つまり、それらが互いの子であってはなりません。代わりに、それらの関連性を維持したい場合は、共通の親を指定してください。ここで 1 つのオブジェクトを移動すると、兄弟は移動しません。それが役立つことを願っています。

于 2013-08-01T19:25:00.853 に答える
0

あなたの説明から、あなたの親シーンがあなたの入力を取得していると思うので、間違っている場合は修正してください。子シーンを次のように設定していると思います。

mMainScene.attachChild(mChildScene);

この場合、親ではなく子への入力の逸脱に対処する必要があります。ただし、ここにはいくつかのオプションがあります。

  1. 子シーンがフルスクリーンを占有し、親シーンの更新/描画について心配する必要がない場合は、単純にシーンを

    mEngine.setScene(mChildScene);

  2. 親シーンの描画と更新を続ける必要がある場合は、MenuScene の事前作成されたクラスと Scene.setChildScene() メソッドを確認してください。AndengineExamples プロジェクトでこれを使用する方法の例が 1 つあります。このクラスを使用すると、子シーンで入力を受け取ることができますが、メイン シーンを描画して更新することもできます。子をモーダルな方法で設定することもできます。

于 2013-08-03T15:48:01.877 に答える