Wpis z mikrobloga

Mirki wytłumaczyłby mi ktoś dlaczego to nie działa: chciałem ogarnąć sobie Canvas i stworzyć swojego flappy birda, na chwilę obecną chciałbym, żeby w MainActivity rysowało mi się kółko (co działa), a następnie, żeby spadało ono w dół, stworzyłem więc wątek w onCreate, i w metodzie run wywołuje metodę mainView.updateBird(), która zwiększa wysokość kółka o zadaną stałą wartość (odpowiednik grawitacji) i powinno narysować je na nowo, tylko że niestety nie rysuje go na nowo, metoda updateBird() zmienia wysokość w obiekcie klasy BirdView, który jest przechowywany w mainView i wywołuje dla tego obiektu this.draw(canvas);

kod MainActivity : https://pastebin.com/jjt6N9td

#naukaprogramowania #androiddev
  • 3
Lepiej byś pokazał kod MainView.
A ogólnie to trochę od złej strony się za to wziąłeś.
- Żeby przerysowywać to kółko to powinieneś używać invalidate(), który od nowa wywoła onDraw() na canvasie. A Ty tu za każdym razem nowy canvas tworzysz?
- Tych wymiarów to nie powinieneś brać z main activity tylko już w widoku/canvasie sprawdzić jakie masz dostępne wymiary.