Почему некоторые спрайты останавливают рендеринг при увеличении масштаба с использованием матрицы перевода? - PullRequest
0 голосов
/ 14 марта 2020

Я использую Monogame для создания игры, и у меня долгое время работала камера, недавно я изменил все свои спрайты с 64 * 64 на 32 * 32, и у меня возникли проблемы с масштабированием камеры и рисованием спрайтов (просмотреть GIF), я использую свойство глубины в Spritebatch для упорядочивания своих спрайтов.

Метод рисования:

_spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend,
        SamplerState.PointClamp, null, null, null, camera.TranslationMatrix);

        tileMap.Draw(_spriteBatch);
        sceneObjectHandler.Draw(_spriteBatch);
        player.Draw(_spriteBatch);
_spriteBatch.End();

GIF:

What happens when I zoom

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 07 апреля 2020

Если кто-нибудь сталкивался с этим постом в будущем, я нашел решение:

При создании матрицы перевода для масштабирования вида используйте:

Matrix.CreateScale(scale, scale, 1)

вместо:

Matrix.CreateScale(scale)

чтобы Z-индекс не влиял на масштабирование

...