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