2010-11-28 3 views
1

Я пытаюсь найти лучший способ хранения объектов карты на 2-й стороне прокрутки игры.Как сохранить объекты экрана для 2d-прокрутки игры?

Например, в игре Doodle Jump, как загружаются платформы, на которых вы прыгаете?

У меня было несколько мыслей о том, как это возможно сделать ..

ли платформы, хранящиеся в строке или другой объект, который определяет, где каждая платформа будет размещаться? Например, если я определил строку, такую ​​как 0,10,5,8,6,2,3,4,2, ..... и т. Д., Я мог бы интерпретировать их как x-координаты каждой части игры в игре , Я предполагаю, что проблема заключается в том, что потенциально может быть МНОГО игровых элементов для определения. Игра кажется бесконечной, поэтому предварительная настройка карты кажется плохой идеей.

Я также думал, что, возможно, части просто случайны. Поэтому всякий раз, когда карта требует нового фрагмента карты, она случайным образом получает координату x. Я думал, что это кажется вполне осуществимым, но, играя в DoodleJump, не кажется, что все они случайны.

Кто-нибудь знает, как эти объекты карты могут быть сохранены, чтобы привести меня в правильном направлении?

Спасибо!

ответ

1

Я думаю массив из инкрементный координаты высоты и их соответствующие координаты ширины (1d или 2d массив). Инкрементный из-за того, что координаты не доходят до больших.
Вы можете использовать экраны, чтобы узнать, на каких платформах рассчитывать координаты экрана. Когда прыгающий объект достигает определенного порога контрольного экрана, сдвигайте камеру с ним, вычисляя новые координаты экрана, опуская платформы, которые выпадают из экрана, и добавляя платформы, которые входят в представление.

Вы можете заранее создать массив, используя алгоритм с некоторой случайностью с ограничением min/max на координатном расстоянии. При использовании ints вы можете создать довольно большой массив, прежде чем попасть в беду, я думаю.
Или создайте его в режиме реального времени, используя одно и то же семя для случайной функции, поэтому он будет генерировать один и тот же массив каждый раз, и вы можете продолжать бесконечно

0

Вы можете использовать генератор случайных чисел с фиксированным семенем на уровень, чтобы пользователи получают одинаковый уровень каждый раз. Случайные числа могут выбирать из массива соответствующих значений. (Я использовал это успешно в игре для Android.)

0

Многие платформы игры хранят платформы статической карты (то есть части карты, которые нельзя манипулировать/уничтожать), напольные плитки в Mario Bros. , например) в качестве предопределенной карты. Это можно сделать, используя массив значений или альфа-образ.

Если вы используете метод массива, используйте байты (unsigned char) вместо int.