2011-12-27 5 views
0

私はGeneric Poolを使用して1秒間隔でAndEngineのシーンにスプライトを追加しています。Generic Pool "取得したアイテムよりも多くのアイテムを再利用しました"

スプライトが追加されると、特定のオブジェクトと衝突するとスプライトがリサイクルされます。

は、私はそれが強制近くを引き起こしイマイチこのエラー

12-27 12:45:07.890: E/AndEngine(25299): More items recycled than obtained! 
12-27 12:45:07.890: E/AndEngine(25299): java.lang.Exception 
12-27 12:45:07.890: E/AndEngine(25299):  at org.anddev.andengine.util.Debug.e(Debug.java:117) 
12-27 12:45:07.890: E/AndEngine(25299):  at org.anddev.andengine.util.Debug.e(Debug.java:107) 
12-27 12:45:07.890: E/AndEngine(25299):  at org.anddev.andengine.util.pool.GenericPool.recyclePoolItem(GenericPool.java:127) 
12-27 12:45:07.890: E/AndEngine(25299):  at com.fttech.hungryhippos.Arcade_MainGame$1.onUpdate(Arcade_MainGame.java:738) 

を得続けるが、私はそれが後に問題を引き起こす可能性があることを心配します。

私は心配する必要があるエラーですか? AndEngineのフォーラムでherpderpから

また、ここで私は私の項目をリサイクルする方法..です

@Override 
protected void onHandleRecycleItem(final Sprite pItem) { 
    pItem.setVisible(false); 
    pItem.setIgnoreUpdate(true); 

} 

答えて

3

それはそれが言うことを意味します。 GenericPoolソースには、obtainPoolItemが呼び出されるとインクリメントするメンバ があり、recyclePoolItemが呼び出されると、 がデクリメントされます。それがゼロ以下になると、他の という単語では、recyclePoolItemがobtainPoolItemよりも多く呼び出された場合、 が呼び出されます - そのエラーメッセージが表示されます。

この問題の解決方法はありません。 あなたのコードをリサイクルしてプールアイテムを入手する場所、具体的には を見て、recyclePoolItemがあまりにも頻繁に呼び出される理由を理解してみてください。

関連する問題