【发布时间】:2012-06-19 16:04:27
【问题描述】:
我在 Greenfoot 教一门课,但我被一些看似微不足道的事情困住了。
我需要一个选项,只要有人在我的世界中拖动一个演员,然后放下它,就会触发一个方法。这是怎么做到的?
【问题讨论】:
我在 Greenfoot 教一门课,但我被一些看似微不足道的事情困住了。
我需要一个选项,只要有人在我的世界中拖动一个演员,然后放下它,就会触发一个方法。这是怎么做到的?
【问题讨论】:
只需覆盖您的演员的addedToWorld() 方法。例如,以下示例定义了一个在插入世界时始终将自身定位在 50,50 位置的演员:
public class MyActor extends Actor {
@Override
public void addedToWorld(World world) {
setLocation(50,50);
}
}
setLocation() 调用当然是任意的,您在该方法中提供的任何代码都将在角色被添加到世界后立即执行(无论是通过拖放交互还是以编程方式)。
作为旁注,您还可以在actor的构造函数中放置一些初始化代码,但是由于这发生在actor被放置到世界之前,任何设置actor的位置、旋转等的代码都会抛出异常。
【讨论】: