monogame - 缩放后的图像质量
monogame - image quality after scaling
我正在为单游戏编写游戏对象 class(精灵的位置、alpha、旋转等...)
我在开始缩放图像时遇到了问题。有没有办法在不降低质量的情况下缩放图像?
这是我渲染所有内容的方式
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,会发生以下情况
^^^^^^^^^^^^^^^^^^^
我一直在玩monogame,无意中找到了解决办法。
您只需要将一些参数添加到 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();
实际上还有很多方法可以做到,但我不太明白怎么做。与 graphics.GraphicsDevice
有关
我正在为单游戏编写游戏对象 class(精灵的位置、alpha、旋转等...)
我在开始缩放图像时遇到了问题。有没有办法在不降低质量的情况下缩放图像?
这是我渲染所有内容的方式
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,会发生以下情况
^^^^^^^^^^^^^^^^^^^
我一直在玩monogame,无意中找到了解决办法。 您只需要将一些参数添加到 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();
实际上还有很多方法可以做到,但我不太明白怎么做。与 graphics.GraphicsDevice
有关