Мне интересно, как лучше всего отрисовать сцену, состоящую из плиток разного размера, сзади и вперед, с разной высотой.
Как это: http://www.youtube.com/watch?v=Ahfrxm6ETgA
Важные вещи начинаются в 2:35. Проигнорируйте ужасное повествование. : P
Я использую VB2008.
Итак, вот что у меня сейчас:
- Моя графика состоит из растровых изображений, которые
иметь ширину и длину, делимые на
32.
- Объекты имеют те же размеры, что и назначенный им рисунок.
- У объектов есть слои, причем нижние слои рисуются задом наперед, прежде чем перейти на следующий слой (например, все объекты в слое 0 визуализируются до того, как объекты в слое 1)
- ВСЕ объекты, независимо от пейзажа / игрока / лица / объекта, хранятся вместе в списке MapObject.
Вот то, что у меня также есть, что я не уверен, чтобы сохранить
- Объекты сортируются не по их начальному значению X / Y, а по их значению X / Y + Высота. Таким образом, объекты отображаются в зависимости от того, где они «касаются» игрового поля. Например, X / Y = вершина объекта дерева, X / Y = ствол дерева.
- Люди (включая игрока) будут просто обычными объектами карты, которые будут отображаться и обновляться в огромном отсортированном списке каждый кадр.
Есть предложения? Прямо сейчас, возни с моим кодом, позволяет моему плееру (32x64 пикселя) стоять перед зданием, но его ноги перекрываются клочком травы, что не работает. Однако изменение алгоритма сортировки приводит к тому, что игрок исчезает в здании, но вы можете видеть его ноги.
Значит, что-то не так, ха-ха.
Кто-нибудь имеет опыт работы с 2D-рендерингом, который может мне помочь?
Кроме того, мои игроки должны быть включены в список объектов карты? Конечно, это будут только графические представления их данных, хранящихся в другом месте (не будут очищаться при изменении карты), или я должен выбросить их в новый список рендеринга (который может открыть совершенно новые проблемы).
Спасибо! ~
РЕДАКТИРОВАТЬ: Я просто прочитал это здесь
http://xnafantasy.wordpress.com/2008/07/22/rendering-dilemmas-z-ordering-grass-and-camera-clipping/
Из того, что он говорит, у него есть 4 разных слоя, а затем он рисует актера между слоями 3 и 4, причем слой 4 является объектами, которые всегда будут появляться поверх человека. Итак, похоже, что его игрок не объект карты, а актер, отрисованный отдельно от всего остального.
Хммм.