Вопрос новичка по Canvas в Android Studio

206
11 апреля 2019, 23:20

Ребятки, помогите, пожалуйста, новичку по Android

Уффф, прямо не знаю с чего начать, самый первый вопрос, надеюсь поможете( Дело вот в чём: мне необходимо написать игру, суть игры думаю, что не важна, проблема в отображении графики. У меня есть метод protected void onDraw(Canvas canvas). В нём идёт начальное отображение уровня на канве. в нём срабатывает вызов Timer.

Timer t = new Timer(player,canvas); //player объект моего игрока где координаты и свой paint
t.start();//Запускаем таймер  

Потом таймер с интервалом в секунду вызывает метод update(player,canvas) он отдаёт туда тот же объект Canvas и и тот же объект игрока. Но в нём и потом появляется ошибка, точнее просто вылет приложения Вот update(c,p);

Код

 protected void update (Player player,Canvas canvas){
       player.setX1(player.getX1() + Vx);
       player.setY1(player.getY1() + Vy);
       Log.d("MyTag",String.valueOf(player.getX1()));
      Log.d("MyTag",String.valueOf(player.getY1()));
      try {if (canvas != null){
          canvas.drawCircle(player.getX1(), player.getY1(), player.getRadius(), player.getPaint());} //на этой строке происходит вылет. Canvas не NULL. По идее можно рисовать
      }
    catch (Exception e){Log.d("MyTag","NULL");}
    }

Вот Timer

Код

 public class Timer extends CountDownTimer {
        int i;
        public Player player;
        public Canvas  canvas;

        public Timer(Player player, Canvas canvas) {
            super(Integer.MAX_VALUE, 1000);
            this.player=player;
            this.canvas=canvas;
        }

        @Override
        public void onTick(long millisUntilFinished) {
            update(this.player,this.canvas);
            i+=1;
            Log.d("MyLog",Integer.toString(i));
        }
        @Override
        public void onFinish() {
        }

Ребята, пожалуйста, помогите. Все были новичками(

Чуть не забыл, вот логи. Приложение напросто вылетает после отрисовки на канве из update. Не вижу другого варианта ссылки на объект canvas

READ ALSO
Spring boot не производит автонастройку бинов

Spring boot не производит автонастройку бинов

НЕ получается запустить проект на spring boot ругается что нету многих бинов

300
Как поменять int на char?

Как поменять int на char?

Есть значения int от 1 до 8Я хочу, что бы в соответствии со значением выводился символ char от a до h

276
Проблема с FirebaseRecyclerAdapter, on a null object reference

Проблема с FirebaseRecyclerAdapter, on a null object reference

Отображение из БД Firebase работает нормально, но когда пытаюсь удалить элемент из базы приложение вылетает, хотя удаление происходитПишет on a null object...

193
Алгоритм Дейкстры на Java NllPointerException

Алгоритм Дейкстры на Java NllPointerException

Пытаюсь реализовать алгоритм Дейкстры для нахождения кратчайшего пути во взвешенном графе на java, при запуске пишет NullPointerException на 54 строкеТам...

268