2014-11-23 1 views
0

(Просто чтобы быть ясно, я прошу guideance не для кого-то программировать всю эту вещь (если они не хотят XD))андроид поколения блоков карты через текстовый файл

Привет, я в настоящее время пытаюсь сделать игра для Android, в которой вы можете построить карту из блоков (существует несколько типов, но мы просто используем стены здесь).

Карта будет состоять из блоков 100x20, в которых игроки могут разместить любой из блоков в любом порядке, и он будет сохранен в виде текстового файла «Назовем его« mapFile »(эта часть Я уже решил), в котором 0 было бы ничем, а 1 - стенами.

Проблема в том, что когда вы начинаете играть на карте, игре придется загружать все блоки, чтобы создавать препятствия, но я хочу, чтобы она делала это определенным образом (в основном, чтобы сделать игру более гладкой и не нужно проверять 2000 блоков на каждое обновление):

- создать группы блоков (линии, квадраты, прямоугольники) в качестве одного препятствия, так что существует только одно обнаружение столкновения в большом количестве блоков (сложная часть чтобы наилучшим образом разделить сложную форму)

-разделите карту на 5x5 кусков, чтобы не было необходимости проверять каждое препятствие, чтобы увидеть, нужно ли ее нарисовать (она просто нарисовала бы кусок, игрок находится в округляя его)

Выход из этого должен быть массив 4 уровня (или нечто подобное): Array [Ychunk] [Xchunk] [препятствие] [х, у, xBlocks, yBlocks, тип] (тип просто НЮМ блока в карте (в данном случае это 1, потому что это число для стены в моем приложении)

Сейчас в игре есть:

-An массив со всеми деталями препятствий (х, у , xBlocks, yBlocks, type)

-Просто обновляет препятствия, если они находятся на небольшом расстоянии от плеера (все еще необходимо проверить их все)

-Только привлекает препятствия, которые находятся внутри окна (также проверить их все)

+0

2D плитка игра? [Игры на основе плитки] (http://www.tonypa.pri.ee/tbw/links.html). – j4rey89

+0

Да, извините, забыл об этом – mbsff

ответ

0
  • Во-первых, Вам не нужен массив со всей информацией на карте, что вам нужно, это 2D массив плитка. Объект плитки будет содержать всю информацию, подобную изображению, isSolid и т. Д.
  • Во-вторых, вы всегда будете видеть игрока, который будет действовать как ваш якорь, Только показать плитки вокруг вашего плеера и отобразить их экран. Не имеет смысла отображать фрагменты, которые не будут отображаться на экране, например, если игрок находится в центре, а экран отображает 5x5 фрагментов, а затем +/- 2 плитки плейера игрока. То же самое касается проверки того, что плитка видна Нет, необходимо проверить все
  • Наконец, снова вам не нужно проверять столкновение игрока со всеми препятствиями, нужно только проверять столкновение с плиткой, что игрок собирается двигаться дальше.

Надеюсь, что это поможет.

+0

Спасибо за ответ, но, как сказано в разделе «На данный момент игра», есть массив только для препятствий, который имеет свою информацию, и игра только обновляет и отображает объекты внутри окно, часть, говорящая, что он должен проверить их все, так, чтобы он знал, находятся ли они внутри или нет. – mbsff

+0

Что такое xblock, yblock и xchunk, ychunk? Тип, я предполагаю, что это плиточный тип. – j4rey89

+0

xblock и yblock - количество блоков в каждом направлении, из которого сделан препятствие, xchunk и ychunk - это куски на карте (кусок - площадь 5x5) – mbsff

Смежные вопросы