2011-12-03 34 views
2

目前我的相机跟在一张图像后面,但现在决定我想在屏幕的顶部显示一些文字。 我发现使用下面的代码,它使文本在屏幕上移动20,20的位置正在改变。 (这是有道理的,因为相机跟随一个物体,位置20,20是静态的)。xna当相机跟随物体时,将文字绘制到屏幕上

spriteBatch.DrawString(font, "test", new Vector2(20, 20), Color.White); 

相机正在更新为以下代码。

 _viewMatrix = Matrix.CreateTranslation(new Vector3(-this.Position.X, -this.Position.Y, 0)) * 
         Matrix.CreateRotationZ(this.Rotation) * 
         Matrix.CreateScale(new Vector3(Zoom, Zoom, 1)) * 
         Matrix.CreateTranslation(new Vector3(viewPort.Width * 0.5f, viewPort.Height * 0.5f, 0)); 

它晚了,觉得我失去了一些东西很明显,但如果我要永远屏幕显示“测试”无论在哪里,相机,你怎么做呢?

+0

您是要求让文本停留在对象顶部(即在屏幕上移动)还是使文本保持在屏幕上的相同位置? – neeKo

回答

1

简单:在不传递视图矩阵的情况下启动另一个精灵批处理(即:调用Begin)。

+0

绝对的传说,我真的应该知道!感谢您的帮助。 – Simon