0

在创建 Box2D 横向卷轴游戏时,滚动每个对象并移动它(例如通过 x 轴)是否性能友好,就像它在以下代码快照中所做的那样:

for(Body b: bodies) {
    b.setTransform(-1, b.getPosition().y, b.getAngle());
}

我也想知道渲染,如果我渲染每个身体上的每个纹理,我会一次渲染整个关卡,这会花费我宝贵的 FPS。

4

1 回答 1

3

与评论说这是一种好方法相反,我不这么认为。

移动世界中的每个实体并不直观。当你在现实生活中穿过森林时,树木也不会在你周围移动,而只有你在移动。

使用 anOrthographicCamera并更改其位置。当通过. SpriteBatch_ 这种方式只会自动绘制可见的物体,因为相机变换将摆脱所有不可见的物体。spriteBatch.setProjectionMatrix(camera.combined)SpriteBatch

还有另一个提示:尽量避免Body.setTransform(). 而是尝试设置线速度或在物体上施加力/扭矩。使用setTransform会导致非物理行为,因为它基本上就像传送,可能会导致奇怪的效果,在我的情况下有时甚至会导致错误。

于 2014-05-15T17:47:36.983 回答