2013-03-12 42 views
0

我尝试绘制手势andengine 我创建这个: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手势=(GestureOverlayView)findViewById(R.id.gesture_Gest ureOverlayView);请问AndEngine如何适应?

+0

我觉得这http://www.andengine.org/forums/post48677.html#p48677但如何添加andengine表面渲染器GestureOverlayView? – user2080866 2013-03-13 16:18:46

回答

0

鉴于您提供的信息相当有限,您的GestureOverlayView构造函数可能会被破坏。

1

已经有一个姿态探测器类可用,发动机

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);