
这个函数使红色的boid站在目标白色boid的顶部。
,问题是,当所有的红色机器人都在上面的时候,这个白色的机器人就会消失。(如上图所示)
我可以添加一个新的boid或捕食者,但我不能删除?:
void mousePressed() {
if (mouseButton == LEFT){
Creature predator = new Creature(mouseX, mouseY, 2);
planet.boids.add(predator);
} else if (mouseButton == RIGHT) {
Creature boid = new Creature(mouseX, mouseY, 1);
planet.boids.add(boid);
planet.boids.remove(boid); // This line does not work?
}
}发布于 2016-01-20 14:18:12
你发布的代码毫无意义。您想要删除现有的 Boid,那么为什么要创建一个新的Boid然后立即删除它呢?
您还没有发布MCVE,所以我只能从一般意义上回答,但是下面是您需要做的事情:
步骤1:重构您的代码,使其更有意义。如果有必要,请对每一行进行注释,以确保您确切地知道代码正在做什么。但是,您不应该这样做,比如添加一个新的Boid,然后在下一行中删除它。将您的问题分解成更小的步骤,并确保每个步骤在尝试将其与其他功能混合之前完全独立工作。
步骤2:创建一个接受单个white Boid和List of red Boids的函数,如果应该删除white Boid,则返回true。在一个独立的示例草图中使用硬编码的值来测试这个函数。
步骤3:迭代您的white Boids,并为每个white Boids调用在步骤2中创建的函数。如果函数返回true,则删除该white Boid。您可能需要在此步骤中使用Iterator。
如果你被困在这些步骤中的一个,然后发布一个MCVE和一个特定的问题,然后我们将从那里开始。很难回答一般的“我怎么做这个”类型的问题,但是回答特定的问题要容易得多,我尝试了X,预期的Y,但得到Z类型的问题--特别是如果我们有一个MCVE,我们实际上可以在我们自己的机器上运行,而不是一些断开的片段。
https://stackoverflow.com/questions/34901135
复制相似问题