2

我在 Greenfoot 教一门课,我被一些看似微不足道的事情困住了。

我需要一个选项,只要有人在我的世界中拖动一个演员,然后放下它,就会触发一个方法。这是怎么做到的?

4

1 回答 1

0

只需覆盖addedToWorld()你的演员的方法。例如,以下示例定义了一个在插入世界时始终将自身定位在 50,50 位置的 actor:

public class MyActor extends Actor {

    @Override
    public void addedToWorld(World world) {
        setLocation(50,50);
    }

}

调用当然是任意的setLocation(),只要将参与者添加到世界中,您在该方法中提供的任何代码都将被执行(无论是通过拖放交互还是以编程方式。)

附带说明一下,您还可以在 actor 的构造函数中放入一些初始化代码,但由于这发生在 actor 被放入世界之前,任何设置 actor 的位置、旋转等的代码都会抛出异常。

于 2012-08-04T21:25:46.100 回答