打造趣味世界:从添加元素到实现游戏交互
立即解锁
发布时间: 2025-08-18 01:46:26 阅读量: 1 订阅数: 3 

### 打造趣味世界:从添加元素到实现游戏交互
#### 1. 添加蠕虫
为了让世界更有趣,我们可以添加一种新动物——蠕虫。以下是添加蠕虫类的步骤:
1. **创建子类**:在 Greenfoot 场景中,从现有的演员类里选择“New subclass”来添加新的演员类。这里,新类“Worm”是“Actor”类的子类,因为蠕虫属于演员。
2. **命名与选图**:创建新子类时,需输入类名并选择图像。类名“Worm”符合 Java 规范,以大写字母开头且能描述对象类型。图像可从场景关联的图像或通用图像库中选择,这里选择“worm.png”。
3. **完成添加**:操作完成后点击“Ok”,类就会添加到场景中,接着编译并将蠕虫添加到世界。
```mermaid
graph LR
A[开始] --> B[创建子类]
B --> C[命名为 Worm]
C --> D[选择 worm.png 图像]
D --> E[点击 Ok]
E --> F[编译并添加到世界]
F --> G[结束]
```
**练习 3.7**:在世界中添加一些蠕虫和螃蟹,运行场景,观察蠕虫的行为以及螃蟹遇到蠕虫时的情况。
#### 2. 螃蟹吃蠕虫
现在要为螃蟹添加新行为:遇到蠕虫就吃掉它。我们可以利用从“Actor”类继承的方法来实现:
- `boolean isTouching (java.lang.Class cls)`:检查该演员是否与指定类的其他对象接触。
- `void removeTouching (java.lang.Class cls)`:移除该演员当前接触的指定类的一个对象(如果存在)。
示例代码如下:
```java
if ( isTouching(Worm.class) )
{
removeTouching(Worm.class);
}
```
将上述代码添加到螃蟹的`act`方法中,就可以实现吃蠕虫的功能。
```mermaid
graph LR
A[螃蟹行动] --> B{是否接触蠕虫}
B -- 是 --> C[移除蠕虫]
B -- 否 --> D[继续行动]
```
#### 3. 高级说明:包
在`isTouching`和`removeTouching`方法的定义中,参数类型为`java.lang.Class`。Java 类库中有数千个类,为了便于管理,它们被分组到包中。像`java.lang.Class`,最后一部分“Class”是类名,前面的“java.lang”是包名。可以在 Greenfoot 的“Help”菜单中选择“Java Library Documentation”查看 Java 类库文档。
#### 4. 创建新方法
随着为螃蟹添加的行为增多,`act`方法会变得越来越长且难以理解。我们可以将其拆分成更小的方法。例如,创建一个`lookForWorm`方法:
```java
/**
* Check whether we have stumbled upon a worm.
* If we have, eat it. If not, do nothing.
*/
public void lookForWorm()
{
if ( isTouching(Worm.class) )
{
removeTouching(Worm.class);
}
}
```
然后在`act`方法中调用该方法:
```java
lookForWorm();
```
**练习 3.8**:
- 创建`randomTurn`方
0
0
复制全文
相关推荐










