刪除對象比方說,一個圖形世界,讓說的世界的API和演員,我建立了一個對象,從類新名稱食品從演員固有但在某些情況下,我需要這個物體從我的世界中消失。 什麼應該是一個很好的方法呢?問題在Java中
我嘗試這樣做:
public void killFood()
{
getWorld().removeObject(this); // >>>>>Kill any object that inherate from Food and operate this method.
}
但它並沒有殺死任何類型的對象從類中固有的食物......爲什麼?
我把它包(在食品類):
public void act()
{
if (canMove())
move();
else
killFood();
}
public boolean canMove()
{
World myWorld = getWorld();
int x = getX();
int y = getY();
y--;
// test for outside border
if (x >= myWorld.getWidth() || y >= myWorld.getHeight())
return false;
else if (x < 0 || y < 0) // if out of the 1st quarter
return false;
return true; // if inside 1st quarter & borders it can be move.
}
但該對象並沒有消失,爲什麼?
謝謝!
============================================== ============================================ 編輯:canMove方法&蘑菇類
public boolean canMove()
{
World myWorld = getWorld();
int x = getX();
int y = getY();
// test for outside border
if (x >= myWorld.getWidth() || y >= myWorld.getHeight()) {
return false;
}
else if (x < 0 || y < 0) {
return false;
}
return true;
}
public class Mushroom extends Food
{
private final int NEED_TOGO_LEFT = 3;
private int mushroomGotDown=0; // counter for regular +1 down steps
public void move()
{
mushroomGotDown++;
// if mushroom didn't got down 2 times, go down one time.
if (mushroomGotDown != NEED_TOGO_LEFT)
setLocation(getX() , getY() + 1);
else // mushroom got down twise, third will be 1 step left.
{
setLocation(getX() - 1 , getY());
mushroomGotDown=0;
}
}
} // end of class Mushroom
沒有看到removeObject()的實現,很難告訴你爲什麼removeObject()不起作用。 – EboMike 2011-05-10 21:59:25
您可以發佈方法'removeObject'的代碼? – janhink 2011-05-10 22:00:06
它在上面的API鏈接中... 鏈接:http://www.greenfoot.org/doc/javadoc/ – 2011-05-10 23:57:29