2010-11-10 35 views
0

我一直在密切关注本教程。每隔几秒就会出现口吃。如何解决这个问题?

http://www.4feets.com/2009/03/2d-physics-on-android-using-box2d/

一些设置的问题后,我得到了它在我的T-Mobile G1的工作。

现在我有4-5个物体(球)在屏幕上绘制。我的球在屏幕中间产生并开始下降。

问题:游戏每隔几秒口吃一次。我检查了Logcat并认为GC是罪魁祸首。然而,我见过很多使用box2D的游戏,并且产生了流畅的游戏性(例如,Andengine demo)。

他们是怎么做到的?他们是如何阻止GC开始进入的?(假设GC确实是罪魁祸首)

欢迎任何意见。

预先感谢您!

回答

0

所以,如果你检查Logcat,那么你在模拟器上运行这个,对吧?

在这种情况下不要相信模拟器。据我所知,它读取/写入内存的方式使其成为判断应用程序如何在实际电话上运行的糟糕基准。

如果它适用于您的G1,那么它很可能也适用于其他手机。

+0

嗨。谢谢你的回复。但我没有使用模拟器。我使用连接USB电缆的G1。这样你可以看到来自G1的Logcat。 – Kakyoin 2010-11-10 17:41:38

+0

那么,当你在没有连接电脑的情况下运行它会发生什么? – user432209 2010-11-11 00:50:28

0

库存JBox2D在其计算中使用了大量的对象创建。有人在Android NDK Box2D上工作,但比起只使用Java库来说,这有点多。我不相信JBox2D的任何(尚)版本已经解决了您似乎遇到的GC流失问题。我尝试了一个,但我不知道它会提供多少好处,或者它离NDK版本有多近。您可能需要查看APE Physics for Android。它支持的物理模拟方面实质上较少,但对于某些应用来说可能是正常的。