Логика разработки "Зелёная змейка"
Моя задача не решить вместе с вами задачи, а донести, как нужно размышлять и какая цепочка мыслей может вас привести к решению задачи.
Разработка каждого проекта обычно делится на несколько этапов, я обычно придерживаюсь следующих:
- Придумывание общей концепции
- Придумывание путей реализации
- Первая реализация
- Улучшение проекта до достойного состояния
Поэтому мы сначала обсудим концепцию игры, которую хотим создать. И так, игра основывается на игре змейка. Соответственно, вспомним, что у нас есть в игре змейка.
- Появляется змея и мы должны ей управлять
- Должны появляется яблоки (или ягоды), которые должны исчезать когда змейка их ест.
- При съедении яблока, змейка должна увеличиваться в размере.
- При увеличении размера, змейка должна ускоряться.
- Управление должно получаться, при помощи жестов.
И так, теперь когда мы можем себе представить нашу игру, то можем разделить её реализацию на несколько частей
- Реализация счёта, появления яблок и их съедания.
- Реализация змейки, её увеличения и передвижения.
- Реализация управления, создание модели классификации жестов.
Теперь мы можем начать обсуждать реализацию каждой части по отдельности, а начнём мы с реализации счёта и яблок, так как это самое простое.
Мы создадим объект яблока, ему зададим, что он появляется в совершенно случайном месте. При прикосновении змейки яблока, яблоко меняет своё местоположение и обновляется счёт в большую сторону.
Дальше будет сложнее, нам нужно реализовать змейку. Самым простым и элегантным способом её реализации будет сделать начало змейки из 2-ух частей. То есть у нас будет голова и хвост, это будут отдельные блоки. Мы будем управлять именно головой, а её хвост, должен будет следовать за головой, то есть перемещаться туда, где раньше находилась голова. Для увеличения длины змейки, мы будем создавать клона хвоста, который будет следовать за предыдущим хвостом и так далее.
Последняя часть это будет соответственно управление змейкой жестами, тут сначала обучим модель, которая будет распознавать направление куда будет двигаться змейка: вверх, вниз, влево или вправо. В реализации управления, важно помнить, что Teachable Machine в Stretch не возвращает значение класса, по нашему запросу, а постоянно возвращает раз в некоторое время. Поэтому нам нужно будет завязать управление на ивентовой системе.
Ну а теперь мы можем перейти в Stretch и начать реализовывать частично змейку.