Созданная точка все еще выдает исключение NullPointerException - PullRequest
0 голосов
/ 11 октября 2018

В моем маленьком проекте я пытаюсь установить 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 .

1 Ответ

0 голосов
/ 11 октября 2018

Если вы не создадите экземпляр GamePanel, ваша playerPoint будет иметь нулевое значение.

...