在上一節中,通過編程讓螞蟻在我們的控制之下可以在屏幕上隨意移動,本節我們將添加一些蟲子,讓螞蟻去吃。

我们已经有了一个ant类 - 我们现在要为虫子添加另一个。虫子也将成为一个角色actor,所以要制作虫子类,在Actor类上右键单击并选择“new subclass ...”:

Greenfoot【java學習】-吃蟲子

输入:Worm - 请注意我们使用的是大写字母W,在Java中,我们以大写字母开始类名称。从右侧图像列表中选择“ant-with-food.png”作为图像,然后点击确定。

Greenfoot【java學習】-吃蟲子

这样我们的虫子Worm类便创建完毕了,现在还没有为它编写任何程序, 我们的虫子比较笨,只是呆在一个准备好被吃的地方,不会动!我们要修改蚂蚁类,这样当我们的蚂蚁触碰到虫子时,他们会吃掉这个虫子。为此,我们回到蚂蚁的源代码。

在act()方法結束時,我們將插入一些代碼來檢查螞蟻當前是否正在接觸蠕蟲。我們將使用方法getOneObjectAtOffset。該方法返回一個處于指定位置的滿足條件的對象,若一個都沒有找到,則返回。該方法有三個參數。前兩個是我們當前位置的X和Y偏移(差異)。所以我們將爲這兩個參數傳遞零。第三個參數就是蟲子類。也就是說通過該方法返回跟螞蟻接觸的蟲子,如果不是空那就是觸碰到了,否則就是沒有蟲子跟螞蟻接觸。

Greenfoot【java學習】-吃蟲子

請注意,這個方法返回一些東西(我們稱爲對象,如果有的話),所以我們需要存儲這個返回值,准備再次使用它。爲此,我們在之前的行上聲明了一個變量worm(用于保存值的變量)。然後我們使用賦值運算符(=)來指示應該將worm的值設置爲方法的返回值。

下一節,我們將繼續完善這個作品,實現蟲子被吃掉的功能。