2013-03-18 32 views
0

我使用用於顯示兩個視圖mRenderSurfaceView和gestureOverlayView此代碼:andengine運動事件視圖和相機

  relativeLayout = new RelativeLayout(this); 
     final FrameLayout.LayoutParams relativeLayoutLayoutParams = new FrameLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT , RelativeLayout.LayoutParams.FILL_PARENT); 

     gestureOverlayView = new GestureOverlayView(this); 
     gestureOverlayView.setEnabled(true); 

     this.mRenderSurfaceView = new RenderSurfaceView(this); 
     this.mRenderSurfaceView.setRenderer(mEngine); 
     surfaceViewLayoutParams = new RelativeLayout.LayoutParams(super.createSurfaceViewLayoutParams());   

     gestureOverlayView.addOnGesturePerformedListener(this); 

     relativeLayout.addView(this.mRenderSurfaceView, surfaceViewLayoutParams); 
     relativeLayout.addView(gestureOverlayView, 1248,1152); 
     gestureOverlayView.setVisibility(View.GONE); 
     this.setContentView(relativeLayout, relativeLayoutLayoutParams); 

我與此得出:

@Override 
    public boolean onTouch(View v, MotionEvent paramMotionEvent) { 
    //TODO Auto-generated method stub 

if(paramMotionEvent.getAction() == MotionEvent.ACTION_DOWN) { 
    isDrawing = true; 

} 
//TouchEvent 
if(paramMotionEvent.getAction() == MotionEvent.ACTION_UP) { 
    isDrawing = false; 
    rec = new Rectangle[250]; 
    Arrays.fill(rec, null); 
    irec=0; 
} 
if (isDrawing = true) { 

    if (rec[249]!=null){ 
    return false; 
} 


    rec[irec] = new Rectangle(paramMotionEvent.getX(), paramMotionEvent.getY(), 1, 1); 
    if (irec != 0) { 
     Line l = new Line(rec[irec-1].getX(), rec[irec-1].getY(), rec[irec].getX(), rec[irec].getY()); 
     l.setColor(0.5f, 1f, 0.3f); 
     mScene.attachChild(l); 
    } 
    irec++; 
} 
return true; 
} 

和在OnloadScene我此gestureOverlayView.setOnTouchListener(this);

我的場景做1248 * 1152,問題是公共布爾onTouch工作正常,如果我在左邊,但如果下移的場景或右邊的繪製是轉變。如何使視圖具有良好的寬度和高度(我想這就是問題,這個保持相機比例)?

如果我使用mScene.setOnSceneTouchListener所繪製的是確定,但姿勢不工作...

+0

in public boolean onDoubleTap(MotionEvent e){同樣的問題,我無法正確恢復數據getY(),getX(),getRawY()或getRawX().. – user2080866 2013-03-18 21:50:03

回答

0

由velocityOnScreenControl.attachChild(L)解決; (專用AnalogOnScreenControl velocityOnScreenControl;)使用AnalogOnScreenControl示例。

+0

velocityOnScreenControl不好,隨着相機...如果添加在場景中,這會出現在屏幕左上角,也許幫助我? – user2080866 2013-03-23 17:07:27