【发布时间】:2011-03-03 08:43:13
【问题描述】:
我正在 XNA 中开发一款使用 Farseer 物理引擎的游戏,本质上是一个 2D 平台游戏。我无法解决绘制精灵与物理引擎所需单位的方法。
例如,我有一个人的精灵,物理形状只是 0.8 x 1.8(米),并且位置也是米。使重力和现实世界的缩放变得非常简单。 (我也喜欢左下角的出身,但我可以处理颠倒的想法)
然而,标准的 2d 渲染方式是 SpriteBatch.Draw,它以 1:1 的像素比工作,原点位于左上角。
协调这一点的标准方法是什么?我最初只是手动计算出矩形的缩放位置/大小,并使用 SpriteBatch 的源/目标参数,但它看起来很狡猾而且很慢。理想情况下,我想设置一个投影矩阵,然后使用来自物理对象的信息绘制所有内容。唉,它需要的所有矩形都是整数,而不是浮点数,所以它不能很好地工作......
在另一个项目 (OpenGL) 中,我简单地将我的视图矩阵设置为适当的大小,并在其上渲染带有纹理的四边形。这也是我应该在 XNA 中处理它的方式吗?或者有没有一些使用 XNA 的人有什么秘密方法?
【问题讨论】: