Vector2 drawPos = (-screenPosition);
drawPos.X *= (float)device.DisplayMode.Width;
drawPos.Y *= (float)device.DisplayMode.Height;
spriteBatch.Draw(
texture,
drawPos,
getRectangle(),
Color.White,
rotation,
getOrigin(),
1.0f/zoom,
SpriteEffects.None,
0);
我有一個drawPos本質是0..1,並與顯示寬度和高度相乘。屏幕位置是通過拖動屏幕獲得的。對於其他元素,基元,位置是正確的,並且與輸入一起正在被拖動。然而,當繪製一個精靈時,精靈正在快速移動,比輸入快,給出了一種視差效果,而不是我想要的。精靈的位置
不知何故,我得到我使用的參數錯誤的感覺,spriteBatch.Draw(..)不需要pixelcoordinates ..
寬度和高度由質地裝載機獲得。
public Vector2 getOrigin()
{
return new Vector2(width/2, height/2);
}
public Rectangle getRectangle()
{
return new Rectangle(
0,
0,
width,
height);
}
此外,我正在開發Windows Phone。
需要一些更多的信息,你的意思是被拖動的遊戲窗口? screenPosition如何定義?使用視口屬性的高度/寬度:graphicsDevice.Viewport.Width/Height。 –