2013-08-15 3 views
1

Быстрые факты:LibGDX Sprite/Плитка рендеринга позади и впереди объекта

  • Я использую Плиточный как мой Tile-редактор.
  • Я использую LibGDX. У меня есть все, чтобы работать на старую игру в стиле Покемона.

Моя проблема:

Я не создаю покемонов. Мой спрайт 60x20 пикселей, но я хочу, чтобы нижняя 20x20 пикселей (мои ноги) была моей зоной столкновения.

Теперь возьмите дерево, с 20x20pixels unwalkable дном:

Когда я иду со дна, я хочу 40 пикселей выше ног, чтобы быть показал Infront дерева. Это означает, что на 20 пикселей ниже дна и 20 пикселей выше, напротив фактических деревьев. Но, когда я стою чуть выше дна дерева, я хочу, чтобы мой игрок был полностью покрыт за деревом.

Когда я программировал без LibGDX (на рабочий стол, low low-end), я сначала отобразил все пиксели выше моей позиции, затем проверил все предметы, которые выходили выше/ниже меня, а затем отображали все остальное.

Теперь я не знаю, что бы сделать всего пару пикселей, когда я использую OrthogonalTileMapRenderer.

ответ

2

Я думаю, что нет решения, использующего только TiledMapRenderer для визуализации целых слоев.

Представьте, что у вас есть два дерева, один над другим, с одной плитой пространства между ними. Ваш персонаж стоит на этой плите и, таким образом, находится между обоими деревьями. Он будет за одним и перед другим. В этом случае невозможно сделать весь слой сразу стандартным способом, потому что ваш персонаж будет либо перед обоими, либо за обоими деревьями.

Вы все же можете создать свою карту с помощью TilEd, но вам нужно будет проанализировать этот специальный слой с объектами и преобразовать его в список Entites, где вы можете применить ручной Z-порядок (ну, Y-Ordering в 2D-пространстве) от фона до переднего плана и визуализировать их индивидуально в правильном порядке.

+0

спасибо! Если бы я мог «подняться», я бы! Думаю, я все понял и оставил полный код, если я заработаю! – user2687506