這個問題是關於Android/AndEngine的,但一般涉及到Java。對於不適用於每個數組元素的語句?
我有一個for循環用於附加數組中的處理矩形。這是我的代碼。
try {
if ((NPCrectangle.size() > 0) && (NPCbody.size() > 0)) {
System.out.println("NPCrectangle size is "+NPCrectangle.size());
for (int i = 0; i < NPCrectangle.size(); i++) {
System.out.println("For loop ran for NPCrectangle "+i);
for (int j = 0; j < NPCbody.size(); j++) {
NPCrectangle.get(i).setX(NPCbody.get(j).getPosition().x*32);
attachChild(NPCrectangle.get(i));
System.out.println("RECTANGLE ATTACHED FOR NPC"+i);
}
}
}
} catch (Exception e) {
// TODO: handle exception
}
在
System.out.println("NPCrectangle size is "+NPCrectangle.size());
for (int i = 0; i < NPCrectangle.size(); i++) {
System.out.println("For loop ran for NPCrectangle "+i);
我得到 'NPCrectangle尺寸爲2',後來我只得到 '對於循環跑了NPCrectangle 0'。它從不對數組的第二個元素做任何事情。爲什麼是這樣?
這是我的陷阱:
04-25 18:45:45.420: W/System.err(2235): java.lang.IllegalStateException: pEntity 'Rectangle' already has a parent: 'GameScene'. New parent: 'GameScene'!
04-25 18:45:45.420: W/System.err(2235): at org.andengine.entity.Entity.assertEntityHasNoParent(Entity.java:1707)
04-25 18:45:45.420: W/System.err(2235): at org.andengine.entity.Entity.attachChild(Entity.java:907)
當您嘗試連接同一精靈兩次這是一個錯誤。建議?
我猜你在循環的第二次迭代之前拋出異常。在你的catch塊中放一個print語句來找出(或者使用一個調試器)。 – Aurand 2013-04-25 22:30:42
如果.size()> 0,for循環不會循環,您可以刪除檢查 – 2013-04-25 22:31:16
attachChild(NPCrectangle.get(i))的代碼是什麼? ? – drewich 2013-04-25 22:31:39