- 得到此BOID應用程序正在使用某些轉向算法處理。
的類鳥羣被存儲在 對於每種顏色兩個單獨的ArrayLists。
紅色BOID(捕食)具有 追求功能:
class Creature { int prey = 1; PVector pursue(ArrayList boids) { PVector steer = new PVector(); if (prey < boids.size()) { Creature boid = (Creature) boids.get(prey); steer = PVector.sub(boid.location, location); steer.mult(maxpursue); } return steer; }
該函數獲得紅色類鳥羣站在針對性白色BOID的頂部。
問題是如果所有的紅色boid都在它的上面,這個白色的boid就會消失。 (如上面的圖所示)
我可以添加一個新的BOID或捕食者與以下,但我不能刪除?:
爲什麼你創建一個實例,添加它,然後立即從列表中刪除它呢? –
現在你已經編輯了代碼,以便'planet.boids.remove(boid);'實際上不是任何方法的一部分。請發佈您聲稱不起作用的*實際代碼*。 –
這只是爲了測試。如果我刪除創建一個新的實例,那麼它不能識別'捕食者'。我不知道如何改變代碼,以便它。嘗試像.. planet.boids.add(生物捕食者); , planet.boids.add(Creature.predator); ? –