0

私はこれを作成する andengine でジェスチャを描画しようとします:

    protected int getLayoutID() {
    return R.layout.gesture;
}

protected int getRenderSurfaceViewID() {
    return R.id.gesture_rendersurfaceview;
}

protected int getGestureOverlayViewID() {
    return R.id.gesture_GestureOverlayView;
}

Gesture.xmlでこれ:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
>
<org.anddev.andengine.opengl.view.RenderSurfaceView 
                                    android:id="@+id/gesture_rendersurfaceview"
            android:layout_width="240px" 
            android:layout_height="240px"
            android:layout_margin="10px" />

   <org.anddev.andengine.opengl.view.GestureOverlayView 
   android:id="@+id/gesture_GestureOverlayView"
android:layout_width="fill_parent" 
android:layout_height="0dip"
android:layout_weight="1.0" />

 </AbsoluteLayout>

私はこれを使用します、通常は標準コードです

 mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
    if (!mLibrary.load()) {
        finish();
    }

    GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gesture_GestureOverlayView);

    gestures.addOnGesturePerformedListener(this);

しかし、GestureOverlayView Gestures = (GestureOverlayView) findViewById(R.id.gesture_GestureOverlayView); の行でプログラムがクラッシュします。AndEngine でどのように適応しますか?

4

2 に答える 2

1

and-engine には既にジェスチャ検出クラスが用意されています

org.andengine.input.touch.detector.SurfaceGestureDetectorAdapter

スワイプ検出を取得するために使用できますが、要件は明確ではありませんが、これが役立つ場合があります。

protected void onCreate(Bundle pSavedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(pSavedInstanceState);

        this.mSGDA = new SurfaceGestureDetectorAdapter(this) {

            @Override
            protected boolean onSingleTap() {
                // onSurfaceGesture("Tap");
                return false;
            }

            @Override
            protected boolean onSwipeDown() {
                onSurfaceGesture("Swipe Down");
                return false;
            }

            @Override
            protected boolean onSwipeLeft() {
                onSurfaceGesture("Swipe Left");
                return false;
            }

            @Override
            protected boolean onSwipeRight() {
                onSurfaceGesture("Swipe Right");
                return false;
            }

            @Override
            protected boolean onSwipeUp() {
                onSurfaceGesture("Swipe Up");
                return false;
            }

            @Override
            protected boolean onDoubleTap() {
                // onSurfaceGesture("Double Tap");
                return false;
            }

        };

        this.mSGDA.setEnabled(true);
}

そしてそれを登録する

this.mScene.setOnSceneTouchListener(this.mSGDA);

于 2014-01-09T09:44:08.787 に答える
0

あなたが与えた に関するかなり限られた情報を考えると、GestureOverlayViewコンストラクターが壊れている可能性があります。

于 2013-03-14T17:35:23.493 に答える