![]() |
|
||||||||||
|
|
|
|||||
|
Необходимо создать игру на подобие этой.
Т.к. играми, до этого, не занимался возникло несколько вопросов: 1. Как рассчитать движение шарика, отпрыгивание от стены и самое главное размещение его в нужную позицию среди остальных шаров? 2. Как отследить момент, когда рядом 3 шара одинакового цвета? Спасибо. П.С. Буду рад любой информации, касательно создания данной игры. Последний раз редактировалось Art_133; 24.08.2011 в 20:39. |
|
|||||
|
1. создать таблицу. То есть ячейками таблицы будут спрайты, в которые/из которых можно добавлять/удалять шарики.
2. у ячеек таблицы должны быть ссылки на соседей. Когда мы выбрали место (ячейку) в которое попадает наш шарик (то есть уже стрельнули и шарик закончил свое движение), помещаем шарик в нужную ячейку и проверяем ее соседей на предмет: - наличия шарика - совпадения цвета шарика в нашей ячейке (куда мы стрельнули) и шарика в соседней ячейке. Далее, если шарики одного цвета, записываем их в массив. помечаем ячейку-соседа как проверенную. Далее проверяем всех соседей ячейки-соседа. Все шарики, которые находим - заносим в массив. Когда проверка закончена смотрим - если длина массива болше либо равна трем - то лопаем все шарики в массиве. Если меньше - просто чистим массив. PS Я такую проверку делал рекурсией.
__________________
...вселенская грусть |
|
|||||
|
Картина прорисовывается.
Интересует след. моменты: 1. Создать таблицу. Что значит создать таблицу? Класс, который будет размещать элементы в нужном порядке? Я так понимаю, это массив спрайтов с пустыми элементами, верно? 2. У ячеек должны быть ссылки на соседей. Как проверить, какая из ячеек является соседней? 3. Помещаем шарик в нужную ячейку. Как выбрать эту нужную ячейку? Как понять, в какую ячейку летит шарик? |
|
|||||
|
.
|
Не совсем массив, скорее связанный список. Модель. Элементарным объектом-ячейкой может быть класс c акцессорами left, right, top, bottom указывающими на соседние ячейки. Он может содержать цвет шарика, бонус, пр. Этим списком кормите визуальный класс Поле, который создает визуальные шарики и кормит их, в свою очередь, каждой конкретной ячейкой.
|
|
|||||
|
.
|
Чистая математика. Знаем размер ячейки (диаметр шариков), знаем координаты точки и угол запуска шарика-торпеды и находим точку его приземления. Отскоки от стен тоже просчитываются.
|
|
|||||
|
Ну примерно так:
- летим, пока не начнем пересекать таблицу по высоте. - как только пересекли по высоте - начинаем проверять, не пересекаемся ли мы с какой-то ячейкой по ширине. - как только мы пересекаемся с каким-то из шариков и по высоте и по ширине - значит возможно столкновение. - если столкновение возможно - проверяем 2 шарика на пересечение (по радиусу и расстоянию между шариками, теорема Пифагора) - как только произошло столкновение - нужно найти ближайшую свободную ячейку и поставить шарик в нее. Хотя можно определять точку попадания заранее и сразу направлять шарик в нее (то есть в момент выстрела немного подправлять направление полета шарика). Но, на мой взгляд, такая техника выглядит грубовато (зато дает меньше нагрузки на процессор, ведь нет необходимости каждый кадр проверять шарики на пересечение)
__________________
...вселенская грусть |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:15. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|