【问题标题】:XNA 2D textures not rendering properlyXNA 2D 纹理未正确渲染
【发布时间】:2012-03-19 09:19:43
【问题描述】:

由于某种原因,当我尝试渲染它们时,我的纹理看起来很奇怪。 XNA 抓取底部的像素行并将它们向上拉伸。

实图:

渲染的内容:

我使用这个函数来渲染我的图像

// NOTE: c is a instance of my control class that contains textures etc.

Rectangle rect = c.Texture.Bounds;
rect.Offset(Convert.ToInt16(c.position.X), Convert.ToInt16(c.position.Y));

spriteBatch.Draw(c.Texture, c.position, rect, Color.White, 0F, new Vector2(), 1F, SpriteEffects.None, 1F);

谁能告诉我我做错了什么?

提前致谢。

【问题讨论】:

    标签: c# xna


    【解决方案1】:

    看起来你以某种方式搞砸了纹理坐标(即整个精灵使用纹理的下边框,同时也搞砸了水平缩放。你对rect.Offset()的调用的意图是什么?矩形描述了哪个部分要绘制为精灵的纹理,而不是绘制精灵的位置。如果这不是原因或解决方案,我们需要更多信息,例如 v.Xv.Y 是什么。

    【讨论】:

    • 我复制了我的代码错误,将 v.X 更改为正确的值。
    • 我发现了我的问题,它与 rect.Offset() 有关