我有一個預定的功能,檢查身體之間的聯繫,這是每幀調用。for loop in contact listener drop FPS?
當我想檢查某個CCSprite
和b2body
之間的觸摸時,我首先檢查它們是否存在於屏幕上,比我在相關類型的所有精靈上運行for循環。所以,如果我有3只狗,我想檢查接觸,我必須在屏幕上運行所有狗精靈的每個幀。 問題是,我可以看到它減少我的FPS,使遊戲有點模糊。在許多精靈觸點(堆棧幀)
如何運行和降不下來的FPS?
//in my contact check that relevant sprites are exist,than check contact
if([self getChildByTag:1] && [self getChildByTag:300])
{
// run on 10 sprites and check contact
for(int i=0;i<10;i++)
{
if(CGRectIntersectsRect ([[self getChildByTag:300+i] boundingBox], [sprite boundingBox]))
//do something
}
所以即使沒有接觸,只有我檢查幀速率這麼多的條件導致一些泄漏的事實。