在创建 Box2D 横向卷轴游戏时,滚动每个对象并移动它(例如通过 x 轴)是否性能友好,就像它在以下代码快照中所做的那样:
for(Body b: bodies) {
b.setTransform(-1, b.getPosition().y, b.getAngle());
}
我也想知道渲染,如果我渲染每个身体上的每个纹理,我会一次渲染整个关卡,这会花费我宝贵的 FPS。
在创建 Box2D 横向卷轴游戏时,滚动每个对象并移动它(例如通过 x 轴)是否性能友好,就像它在以下代码快照中所做的那样:
for(Body b: bodies) {
b.setTransform(-1, b.getPosition().y, b.getAngle());
}
我也想知道渲染,如果我渲染每个身体上的每个纹理,我会一次渲染整个关卡,这会花费我宝贵的 FPS。
与评论说这是一种好方法相反,我不这么认为。
移动世界中的每个实体并不直观。当你在现实生活中穿过森林时,树木也不会在你周围移动,而只有你在移动。
使用 anOrthographicCamera
并更改其位置。当通过. SpriteBatch
_ 这种方式只会自动绘制可见的物体,因为相机变换将摆脱所有不可见的物体。spriteBatch.setProjectionMatrix(camera.combined)
SpriteBatch
还有另一个提示:尽量避免Body.setTransform()
. 而是尝试设置线速度或在物体上施加力/扭矩。使用setTransform
会导致非物理行为,因为它基本上就像传送,可能会导致奇怪的效果,在我的情况下有时甚至会导致错误。