0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 19
|
|
1 | |
Разработка игры на arduino + lcd nokia 5110. Требуется совет01.02.2017, 11:51. Показов 2281. Ответов 3
Метки нет (Все метки)
Привет всем. Занимаюсь разработкой платформера на ардуино. Хочу сделать что то на подобии игр на денди(бежать вперёд и убивать врагов по пути). Использую библиотеку adafruit для работы с дисплеем от нокии 5110. Натолкните меня на реализацию проекта. Имеется заранее нарисованная карта (в виде картинки, прикреплено во вложении) и переконвертированная в hex код через Image2GLCD, которая выводится на дисплей как рисунок. При нажатии на кнопку влево\вправо эта картинка двигается по горизонтале. Нужно написать игрока, который будет двигаться и препятствия (к примеру ящик, который нужно перепрыгнуть). Выходит мне нужно запоминать позицию игрока и каждого ящика, затем сравнивать и запрещать движение в сторону, если перед игроком ящик? Как вообще это организовать?
0
|
01.02.2017, 11:51 | |
Ответы с готовыми решениями:
3
LCD Nokia 5110 Простенькие мини игры для stm32+несколько кнопок+Nokia LCD STM8L + Nokia 5110 STM32F3DISCOVERY lcd 5110 spi |
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|
03.02.2017, 12:25 | 2 |
Вычислительная проблема обнаружения столкновений обсасывается с разных сторон от сотворения вычислительной техники.
Материалов очень много. Самый простой метод - разбить пространство на множество маленьких квадратиков - тайлов. Заполненность квадратиков сохранять в двумерном массиве (тайл может иметь разные статусы, а именно наполненность игроком, врагом, нейтральным объектом). Тогда столкновение - это просто попытка переместиться в заполненный тайл. При перемещении объект очищает все тайлы, которые он покидает и записывает себя во все тайлы, которые будет занимать его тело по факту перемещения. Перед перемещением проверяется возможность перемещения, то есть свободность тайлов в которые объект собирается переместиться. Если не ошибаюсь, так сделан супермарио. Недостаток - необходимость хранения массива в памяти. Если объектов не слишком много, можно применять попарный анализ, когда в цикле проходяться все объекты и попарно определяется, нет ли между ними коллизий. Есть также и куча других методов, подходящих под разные ситуации. Могу порекомендовать почитать гугл на тему "обнаружение столкновений", "collising detection", "gamedev collision detection". Правда, на вас сразу выльеться ворох всевозможной информации.
0
|
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 19
|
|
03.02.2017, 13:17 [ТС] | 3 |
Вот начальный скетч.
0
|
0 / 0 / 0
Регистрация: 01.02.2017
Сообщений: 19
|
|
10.02.2017, 14:21 [ТС] | 4 |
Можете помочь? Столкнулся с проблемой отображения врагов на дисплее. У меня враг в отдельном файле, там я прописал так:
#include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> Adafruit_PCD8544 * disp; ... disp->drawBitmap (10,10,monster1,8,8,BLACK); ... disp->drawBitmap (10,10,monster1,8,8,BLACK); // Вот эта строчка не работает. Когда доходит до неё, то дальнейшее выполнение кода прекращается. Почему код останавливается на этом месте и дальше не идёт? Причём даже не выводит врага на дисплей. Если отключить эту строчку, то всё работает. А вообще уже сделан игрок, карты тайлмапами и столкновения.
0
|
10.02.2017, 14:21 | |
10.02.2017, 14:21 | |
Помогаю со студенческими работами здесь
4
stm32f103 + nokia 5110 + keil Проблема с LCD от Нокии 5110 (PCF8544) Подключение экрана Nokia 5110 (синий) Не работает связка stm32vldiscovery и экран от Nokia 5110 Как вывести данные на дисплей nokia 5110 на мк AVR? Программа автообновления клиента игры, требуется совет Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |