Изометрический плиточный двигатель

Я делаю RPG-игру, используя изометрический движок плиток, который я нашел здесь:

http://xnaresources.com/default.asp?page=TUTORIALS

Однако после завершения урока я захотел сделать с камерой некоторые вещи, которые я не уверен, как это сделать.

Во-первых, я хотел бы увеличить фотоаппарат, чтобы он отображал соотношение пикселей 1: 1.

Во-вторых, можно ли было бы сделать эту игру 2.5d таким образом, чтобы при движении камеры, спрайт-деревья и тому подобное, двигались правильно. Под этим я подразумеваю, что нижняя часть спрайта посажена, в то время как верхняя часть перемещается на фоне, создавая очень трехмерный опыт. Этот эффект лучше всего можно увидеть в играх, таких как Diablo 2.

Вот исходный код их сайта: http://www.xnaresources.com/downloads/tileengineseries9.zip

Любая помощь будет здорово, спасибо

1 ответ

Такие игры, как Diablo или Sims 1, 2, SimCity 1-3, X-Com 1,2 и т. Д. На самом деле были просто 2D-играми. Эффект 2.5D требует, чтобы плитки дальше были того же размера, что и плитки поблизости. Ваше вращение вокруг этих игр ограничено до 90 градусов.

Как они рисуют - это в основном алгоритм художников. Сначала рисуем то, что дальше всего, и перебираем то, что ближе. На самом деле Diablo довольно прост, насколько я помню, в нем не было слоев или различий в высоте. Просто плоская карта. Таким образом, вы сначала рисуете плитки для пола (в этом случае задняя часть не нужна, так как все они находятся на одной высоте). Затем отрисовываете вперед стены, эффекты персонажей и т. Д.

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

Если вы хотите добавить перспективу или свободное вращение, вам нужно все, чтобы быть 3D-моделью. Ваш рендеринг будет проще, потому что глубина или порядок рендеринга не так важны, как если бы вы использовали z-буферизацию для решения ваших проблем. Единственная главная проблема - правильно отображать прозрачные биты в правильном порядке, иначе вы можете получить странные результаты. Однако даже если ваш рендеринг проще, анимация или хранение в памяти немного сложнее. Вам нужно анимировать 3D-модели, а не просто иметь массив растровых изображений для анимации. Выбор элементов на экране требует немного больше работы, так как положение и размер элементов больше не являются согласованными или легко предсказуемыми.

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

Другие вопросы по тегам