Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android andengine运动事件视图和摄影机_Android_View_Camera_Andengine - Fatal编程技术网

Android andengine运动事件视图和摄影机

Android andengine运动事件视图和摄影机,android,view,camera,andengine,Android,View,Camera,Andengine,我将此代码用于显示两个视图mRenderSurfaceView和gestureoveryview: relativeLayout = new RelativeLayout(this); final FrameLayout.LayoutParams relativeLayoutLayoutParams = new FrameLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT , Relati

我将此代码用于显示两个视图mRenderSurfaceView和gestureoveryview:

            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 i中,这个
gestureOverlayView.setOnTouchListener(这个)

我的场景是1248*1152,问题是如果我在左上角,公共布尔onTouch可以正常工作,但如果在场景中向下移动或向右移动,则绘制的是移位。如何使视图具有良好的宽度和高度(我想这就是问题所在,这会保持相机比例)


如果我使用mScene.setOnSceneTouchListener,则绘制的是ok,但手势不起作用…

由velocityOnScreenControl.attachChild(l)解决;of(private AnalogOnScreenControl velocityOnScreenControl;)使用AnalogOnScreenControl示例。

在公共布尔onDoubleTap(MotionEvent e){i同样的问题,我无法恢复数据getY()、getX()、getRawY()或getRawX()正确..velocityOnScreenControl不好objet随相机移动…如果在屏幕左上角出现此附加场景,也许可以帮助我?