我有一个不断被调用来更新游戏的游戏循环。在这个循环是下面的代码:下面的代码会导致我的游戏循环中的性能问题
mySurfaceView.post(new Runnable() {
public void run() {
myView.setTranslationX(myCam.getX());
myView.setTranslationY(myCam.getY());
}
});
有人告诉我说把“新”的关键字在我的游戏循环通常不是一个好主意,因为内存不断被分配给新的对象。然而,这是一个匿名的内部类,所以我不确定这里是否适用。此代码是否会导致性能问题?如果是这样,那么我将如何去解决它们?当他移动时,我使用这段代码让我的屏幕围绕我的玩家。
幸运的我刚才发现我的问题是我没有适当调整我的TouchListener的x和y值,所以我不再需要再乱用视图了。尽管如此,检查和投票给你我的好先生。对于上面的代码是否会导致性能问题,我从来没有得到过是或否的答案。我猜是的? –
最好避免在游戏循环中分配,因为虚拟机需要偶尔收集垃圾。垃圾收集器已经改进了多年,所以你不会像Android 1.0那样得到100ms的打嗝,但收集垃圾总是比收集垃圾更昂贵。 – fadden