我有一个有2个精灵的spritesheet。每个精灵都是40x60。图像的总大小为40x120。 它看起来像这样(红线是第一个精灵的一部分)。我会在一秒钟内告诉你为什么我加上了。
似乎由于某种原因,在尝试绘制第二个精灵时,它总是占用前一个精灵的最后一行。我画了那条红线来说明这一点。
这是我绘制第二个精灵的代码:
Rectangle rect = new Rectangle(0, 60, 40, 60); // Choose 2nd sprite
Vector2 pos = new Vector2(100, 100);
Vector2 origin = new Vector2(0, 0);
spriteBatch.Begin();
spriteBatch.Draw(mSpriteTexture, pos , rect, Color.White, 0.0f, origin, 6, SpriteEffects.None, 0.0f);
spriteBatch.End();
这就是我运行程序时的样子:
任何想法我做错了什么?
注意:对于此示例,我使用scale = 6。我这样做是因为看起来当比例> 1这个问题总会发生。如果scale = 1,它似乎不会一直发生。
答案 0 :(得分:1)
有同样的问题。在我的spriteBatch.Begin中使用了SamplerState.PointClamp - 调用它来修复它
看起来像这样:( MonoGame 3.6 tho)
SpriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null, null, viewMatrix);