На этом уроке мы добавим таймер и будем выдавать игру по тикам.
Дата отправки отчёта:
26 февраля 2018 г.
Задание выполнено: за
3 дня 6 час. 3 мин.
Чему научился:
Делаю под Андроид :) Когда в отчёте о выполнении предыдущего урока я предположил, что будет интересно, то и не представлял насколько, хотя и чувствовал смутную тревогу перед будущим... В общем суть такова: Нельзя просто так взять и нарисовать что-то на Canvas! То-есть можно, но только один раз при создании канвы. А чтобы сделать что-то по таймеру, то надо это делать через лямбду RunOnUiThread, да ещё делать перерисовку канвы через Invalidate каждый раз... И это не говоря о том, что Layout в виде Canvas представляет собой не xml/axml файл, а cs и логика для отрисовки находится в нём! (правда и в WPF можно всю или почти всю логику тоже в XAML запихнуть). Вот теперь думаю, как съеденную еду убирать в следующих уроках, чтобы сохранять змею: сохранять координаты еды и перерисовывать только тот участок (и также поступать с хвостом змеи) или перерисовывать всё? Будет ли разница в быстродействии вообще? Или вообще делать на Xamarin Forms - там вроде почти WPF. Но это будет неспортивно!
Что было сложным:
Собрать воедино разрозненные сведения о рисовании на Canvas в Xamarin, о перерисовке Canvas и о работе с UI через события, чтобы сделать такую элементарную вещь, как обновление канвы по таймеру. Нигде нет внятного руководства, только мануалы по отдельным несвязанным азам работы и читаты оттуда же. Прямо закрытая секта разработчиков под Android какая-то!