使用 SpriteBatch.Draw XNA Framework 显示时 Sprite 会拉伸
Sprite stretches when displayed with SpriteBatch.Draw XNA Framework
当使用 XNA Framework spriteBatch.Draw()
时,尽管两个轴上的比例看似相同,但 sprite 看起来被拉伸了。据我所见,精灵应该位于距左侧 64 个单位的位置,并且应该压在 window 的顶部,但应该是正方形,而不是矩形。纹理是一个简单的 8x8 正方形。
代码:
spriteBatch.Draw(Content.Load<Texture2D>("enemies/blob/blob_walk0"), new Rectangle(64, 0, 128, 64), Color.White);
抱歉,如果这个问题不符合标准,我是 Whosebug 的新手,不知道自己在做什么。
new Rectangle()
使用一种方法,您必须以像素为单位定义以下内容:
(x, y, width, height)
.
在您的示例中,宽度为 128 像素,而高度为 64 像素。所以它的宽度会拉伸两倍。
将 128
替换为 64
会使宽度等于高度,并生成正方形。
当使用 XNA Framework spriteBatch.Draw()
时,尽管两个轴上的比例看似相同,但 sprite 看起来被拉伸了。据我所见,精灵应该位于距左侧 64 个单位的位置,并且应该压在 window 的顶部,但应该是正方形,而不是矩形。纹理是一个简单的 8x8 正方形。
代码:
spriteBatch.Draw(Content.Load<Texture2D>("enemies/blob/blob_walk0"), new Rectangle(64, 0, 128, 64), Color.White);
抱歉,如果这个问题不符合标准,我是 Whosebug 的新手,不知道自己在做什么。
new Rectangle()
使用一种方法,您必须以像素为单位定义以下内容:(x, y, width, height)
.
在您的示例中,宽度为 128 像素,而高度为 64 像素。所以它的宽度会拉伸两倍。
将 128
替换为 64
会使宽度等于高度,并生成正方形。