В моем маленьком проекте я пытаюсь установить Point
для другого Point
в OnTouchEvent()
.Обе точки создаются в конструкторе следующим образом:
package com.example.samuel.truespeedgame;
import android.content.Context;
import android.graphics.Point;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
public class GamePanel extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder holder;
private SurfaceViewThread surfaceViewThread;
public Point clickPoint, playerPoint, startPoint;
GamePanel(Context context) {
super(context);
maxSpeed = 20;
playerPoint = new Point(200,200); //very normal instanciating of Points i guess
startPoint = new Point(200,200);
clickPoint = new Point(200,200);
}
Мой OnTouchEvent()
выглядит следующим образом:
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
// Player has touched the screen
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
if(clickPoint != null)
clickPoint.set((int)motionEvent.getX(),(int)motionEvent.getY());
else if(clickPoint == null) clickPoint = new Point((int)motionEvent.getX(),(int)motionEvent.getY());
startPoint = playerPoint; //Here gets the error thrown
break;
case MotionEvent.ACTION_UP:
}
return true;
}
Это было NullPointerException перед тем, как перестроить проект.Теперь playerPoint.x
и .y
всегда 0 .