我有這些'怪物',當它們到達屏幕底部時,它們會不斷創建和刪除。他們左右移動,我希望它們在碰觸時(或者如果它們是在彼此的頂部創建的),其中一個移開。碰撞代碼不起作用
目前我在管理類的怪物:
public void update() {
int i = 0;
while(i < (Constants.NUMBER_ENEMIES-2)) {
if (Rect.intersects(npcManager.getList().get(i).getRectangle(), npcManager.getList().get(i + 1).getRectangle()))
npcManager.getList().get(i).setRectangle(200);
i += 1;
}
}
凡npcManager是一個實例,並且它的thelist得到我們的NPC組成的數組列表。我創建的setRectangle方法是:
public Rect setRectangle(int move) {
rectangle.top += move;
rectangle.bottom += move;
return rectangle;
}
它應該將NPC向下移動200,以便它不再發生碰撞。
我的問題是,有什麼理由爲什麼這段代碼不工作?目前矩形只是通過每個其他的代碼,代碼沒有任何影響。
你只是檢查一個矩形是否與列表中的下一個碰撞('i','i + 1'):如果第一個矩形與最後一個矩形碰撞會發生什麼? – BackSlash
可能是因爲代碼中的某處存在缺陷而無法顯示?嘗試創建[mcve];或學習使用調試器。我們不能幫助這樣的輸入。 – GhostCat
@ backlash目前只有兩個項目在列表中,只是想保持簡單,同時檢查 - 我應該澄清,對不起 – George