У меня проблема при импорте плиточных карт со слоями объектов в проект MonoGame. Все в значительной степени работает отлично;Я могу импортировать плиточную карту в проект и визуализировать карту с использованием MonoGame.Extended.
Моя проблема начинается, когда я пытаюсь использовать объект из слоя объектов на плиточной карте. Я могу получить доступ к объекту, и я могу получить доступ к его свойствам (положение и т. Д.) Просто отлично. Фактически, при доступе к свойствам объекта они выводятся точно так, как должны. Ниже приведены поясняемые изображения:
Это изображение объекта в редакторе плиточной карты
А ниже приведен код, куда я импортирую карту, собираю объектинформацию и назначить эту информацию (в данном случае, позицию) другому объекту (игроку)
gameMaps.Add(MapBuilder.LoadTiledMap("TestMap"));
gameMapRenderer = new TiledMapRenderer(graphicsDevice);
var viewportAdapter = new BoxingViewportAdapter(GameInstance.Instance.Window, graphicsDevice, 1440 / 4, 810 / 4);
mainCamera = new Camera2D(viewportAdapter);
var player = new Player();
var playerStartPos = new Vector2();
foreach(var obj in gameMaps[0].ObjectLayers[0].Objects)
{
if (obj.Name.Equals("PlayerStart"))
{
playerStartPos = obj.Position;
break;
}
}
player.position = playerStartPos;
entities.Add(player);
mainCamera.LookAt(player.position);
Но ниже изображение, демонстрирующее проблему:
Выпуск в виде изображения
Спрайт /персонаж - это объект игрока, которому назначена позиция, в случае, если неясно.
Объяснить: я могу получить позицию объекта и назначить ее моему объекту «Игрок», и мой игрокзатем в правильной позиции в соответствии с позицией объекта в редакторе плиточной карты. Однако сама мозаичная карта фактически отображается в неправильном положении, хотя я никогда не вносил никаких изменений в положение карты в целом.
Некоторые дополнительные сведения, которые могут помочь:
В редакторе плиточной карты позиция x0, y0 является самой верхней плиткой карты. Тем не менее, в MonoGame, если я пойду в ту же позицию, мозаичная карта будет визуализирована / размещена в некоторых измерениях ниже. Это означает, что расположение карты неверно относительно того, каким оно должно быть.
Ниже приведено изображение, показывающее, какова эта позиция в MonoGame и как она не соотносится с позицией в Tiled.
Скриншот MonoGame