在上一节中,通过编程让蚂蚁在我们的控制之下可以在屏幕上随意移动,本节我们将添加一些虫子,让蚂蚁去吃。

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

Java少儿编程神器Greenfoot(7)吃虫子-少儿编程教育网

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

Java少儿编程神器Greenfoot(7)吃虫子-少儿编程教育网

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

在act()方法结束时,我们将插入一些代码来检查蚂蚁当前是否正在接触蠕虫。我们将使用方法getOneObjectAtOffset。该方法返回一个处于指定位置的满足条件的对象,若一个都没有找到,则返回。该方法有三个参数。前两个是我们当前位置的X和Y偏移(差异)。所以我们将为这两个参数传递零。第三个参数就是虫子类。也就是说通过该方法返回跟蚂蚁接触的虫子,如果不是空那就是触碰到了,否则就是没有虫子跟蚂蚁接触。

Java少儿编程神器Greenfoot(7)吃虫子-少儿编程教育网

请注意,这个方法返回一些东西(我们称为对象,如果有的话),所以我们需要存储这个返回值,准备再次使用它。为此,我们在之前的行上声明了一个变量worm(用于保存值的变量)。然后我们使用赋值运算符(=)来指示应该将worm的值设置为方法的返回值。

下一节,我们将继续完善这个作品,实现虫子被吃掉的功能。