алгоритм игры "Match3"
Делаю игру "match3". Возникли некоторые вопросы реализации, т.е. "как лучше?".
У меня есть три типа: TMap , TTile , TItem . Карта состоит из массива тайлов tile:TTile[8,8] , а элементы TItems обрабатываются вне этого массива и карты, т.е. не привязаны, находятся в списке TItemList и через него проверяются. Некоторые говорят, что это слишком усложнено, и можно было бы сделать просто через массивы, а как же тогда быть с элементами (объектами), ведь получается, что будет не просто управлять их движением? Интересно узнать мнение тех, кто подобное реализовывал или знает как это сделать. |
Ответ: алгоритм игры "Match3"
Для элементов (TItem) можно сделать аналогичный тайловому массив TItems[8,8].
Для них же можно сделать отдельно координаты рисования, которые будешь менять при анимации перемещения. А реальными "координатами" будут индексы в массиве, по ним проверку соседей делать. Можно ещё сразу сделать "конечные координаты", которые будут представлять собой индексы в массиве для ячейки, которую займёт элемент после прекращения движения. И после завершения можно текущие приравнять конечным. |
Ответ: алгоритм игры "Match3"
если честно, то ничего не понял
|
Ответ: алгоритм игры "Match3"
Цитата:
2. Зачем тебе проще? |
Ответ: алгоритм игры "Match3"
Да, работает, но приходится постоянно пробегать по всему списку объектов, если требуется найти нужный объект по индексам (они также содержатся в описании его типа). Я сейчас имею в виду даже не "match3" , а "lines" , хотя эти игры в чем-то похожи. Мне интересно, как можно сделать по-другому, чтобы постоянно не искать в списке нужный объект. Можно взять, к примеру жанр RTS, допустим, ведь там если в игре участвуют более сотни или тысячи юнитов, программа ведь не ищет каждого в списке..
|
Часовой пояс GMT +4, время: 23:50. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot