1
只有當對象被點擊並且需要從列表中移除時纔會丟棄。 這裏是代碼:爲什麼我的FPS下降?
if(event.type == TouchEvent.TOUCH_DOWN){
for(Bottle bottle : new ArrayList<Bottle>(bottles)){
if(bottle.position.dist(touchPoint) < 40){
bottles.remove(bottle);
if(bottle.type == Bottle.BOTTLE){
score+=10;
Assets.playSound(Assets.beeropenSound);
}
else if (bottle.type == Bottle.BOTTLE30){
score+=30;
Assets.playSound(Assets.beeropenSound);
}
else if (bottle.type == Bottle.GLASS_OF_BEER){
score+=5;
Assets.playSound(Assets.pourbeerSound);
}
else if (bottle.type == Bottle.WATER_BOTTLE){
score-=50;
}
// burping
if (score % 200 == 0 && score > 1){
Assets.playSound(Assets.burpSounds[burp]);
}
break;
}
}
,這裏是FPS日誌:
01-20 19:18:19.629: D/FPS(27501): 59
01-20 19:18:20.639: D/FPS(27501): 59
01-20 19:18:21.639: D/FPS(27501): 49
01-20 19:18:22.649: D/FPS(27501): 59
01-20 19:18:23.669: D/FPS(27501): 60
01-20 19:18:24.669: D/FPS(27501): 59
01-20 19:18:25.689: D/FPS(27501): 60
01-20 19:18:26.699: D/FPS(27501): 43
01-20 19:18:27.719: D/FPS(27501): 60
01-20 19:18:28.739: D/FPS(27501): 60
01-20 19:18:29.759: D/FPS(27501): 60
我試圖消除這種東西,但它是不是:
- 刪除音效
- 刪除流式背景音樂(3mb mp3文件)
- 移除ArrayList的副本,它列出真正的瓶子列表並添加應該刪除的內容到另一個列表中,並從瓶子列表中刪除該列表
- Assets.burpSounds [burp]:burp是隨機使用隨機java mudle生成的局部變量。我刪除(打嗝是在構造函數)它沒有工作...
有一件事是留下來的垃圾收集器。 這是什麼讓我的FPS下降? 我如何確定? 如何打擊這些敵人?
而且正如我之前所說的那樣只有在執行該代碼塊時丟失。
但在更新中使用了2次以上的列表,所以我應該添加!= null。我正在嘗試不同的方法:基於時間更新... – carobnodrvo
因爲我必須從瓶子中移除物體,並且在迭代它時我無法移除它... – carobnodrvo
當然,您可以,您只需將其從你的分數代碼後列表 –