изометрический плиточный двигатель - PullRequest
1 голос
/ 15 февраля 2012

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

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

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

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

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

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

Любая помощь была бы отличной, спасибо

1 Ответ

2 голосов
/ 20 апреля 2012

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

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

Все в этихигры были преобразованы в растровые изображения и отображены как растровые изображения.Даже если их источником может быть модель с 3D-текстурой.

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

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

...