Каков наилучший способ создания прокрутки мира? - PullRequest
2 голосов
/ 25 июля 2011

В этой игре, которую я пытаюсь создать, игроки смогут двигаться во всех направлениях

Я добавил одно изображение (текстура 1024x768 2d) в качестве фона или ландшафта.

Теперь, когда игрок перемещается, я хочу показать некоторые вещи.

Например, скажем, лампа, когда игрок достаточно двигается, он увидит лампу.если он вернется, лампа исчезнет, ​​потому что ее больше не будет на экране

Если мне неясно, подумай о Марио.когда вы идете дальше, появятся копилки, если вы вернетесь, они исчезнут.но фон всегда будет оставаться неизменнымтот спрайт до 1599-1,1422-1 и тд.Это хороший способ сделать это?

Есть ли лучшие способы?

Ответы [ 4 ]

2 голосов
/ 25 июля 2011

Достигнуть этого результата можно двумя способами.

  1. Держите плеер и камеру неподвижно, перемещайте все остальное.
  2. Держите все неподвижно, кроме проигрывателя и камеры.

Похоже, вы пытаетесь реализовать первый вариант.Это прекрасное решение, но оно может быстро усложняться по мере роста количества предметов.Если вы используете систему плиток, это может стать намного проще в управлении.Я рекомендую вам использовать какой-нибудь движок плиток.Также есть много замечательных редакторов карт тайлов.

Некоторые ресурсы для использования тайлов:

  • Тайл - Хороший редактор карт
  • TiledLib - библиотека XNA для использования плиточных карт
2 голосов
/ 25 июля 2011

То, что вы описываете, это Окно просмотра , которое описывает часть «мира», которая в данный момент видна.

Вам необходимо определить содержимое вашего «мира»как-то.Это можно сделать с помощью структуры данных, такой как граф сцены, но для описываемой простой 2D-среды вы, вероятно, можете хранить объекты в массиве.Чтобы изменить координаты области просмотра (и вашего персонажа, если вы хотите, чтобы они оставались по центру), вам необходимо связать клавиши со стрелками.

Рекомендуется рисовать только те объекты, которые в данный момент видны.Не зная, какие языки или пакеты вы используете, сложно это прокомментировать.

0 голосов
/ 25 июля 2011

После того, как вы закончите базовую прокрутку, попробуйте реализовать отбраковку усеченного конуса.Это только рисование объектов, которые на самом деле видны на экране и избегают ненужного рисования вещей, которые все равно не видны.

Я бы предпочел решение № 2 (переместить игрока и камеру) - мне было бы легче, но, возможно, это просто личное предпочтение.

0 голосов
/ 25 июля 2011

Я бы посмотрел на Параллакс-прокрутка . Здесь - пример этого в действии.

Если это то, что вам нужно, то вот учебник с исходным кодом.

XNA Parallax Scrolling

...