monogame - качество изображения после масштабирования

Я пишу класс GameObject для моноигры (положение спрайта, альфа, вращение и т. Д.)

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

Вот как я все рендер

foreach (KeyValuePair<int, GameObject> go in RenderObjects)
{
     spriteBatch.Draw(go.Value.img, go.Value.getRect(), go.Value.RenderArea, Color.White * (float)go.Value.alpha, (float)go.Value.rotation, go.Value.getCenter(), SpriteEffects.None, 0f);          
}

И вот что произойдет, если вы попытаетесь масштабировать изображение 16x64 до 160x640

Нажмите, чтобы увидеть изображение

^^^^^^^^^^^^^^^^^^


person Ruslan    schedule 25.01.2018    source источник


Ответы (1)


Я возился с моноигрой и случайно нашел решение. Вам просто нужно добавить некоторые параметры в spriteBatch.Begin ();

spriteBatch.Begin(... , ... ,SamplerState.PointClamp);

foreach (KeyValuePair<int, GameObject> go in RenderObjects)
{
     spriteBatch.Draw(go.Value.img, go.Value.getRect(), go.Value.RenderArea, Color.White * (float)go.Value.alpha, (float)go.Value.rotation, go.Value.getCenter(), SpriteEffects.None, 0f);
}
spriteBatch.End();

На самом деле способов это сделать больше, но я не совсем понимаю, как. Что-то связанное с графикой.

person Ruslan    schedule 27.01.2018