如何监视另一个类中的变量并在其值发生变化时运行方法(java)

时间:2015-11-22 07:50:05

标签: java concurrency 2d-games java-threads

我试图构建一个图形游戏(在java中),当玩家到达特定点时需要在世界之间移动。每个世界都由一个扩展GCanvas的类代表,整个游戏由主类管理。

我从主课提出第一世界开始。当玩家到达某一点时,它会在这个世界的类中改变一个变量。我希望主类监视此变量,并在此指示符变为true时切换到下一个世界。我认为线程可能会有所帮助,但我不确定如何做,并希望得到一些帮助。

这就是主要课程的想法:

world1 = new GCWorld1();
add(world1);
/**when the player reaches the point (world1.getMoveWorldIndic())*/
remove(world1);
world2=new GCWorld2();
add(world2);

感谢。

2 个答案:

答案 0 :(得分:0)

我会以不同的方式解决问题。我没有在线程中监视来自外部的变量,从而浪费了轮询的计算能力,而是找到一种方法来通知外面的类转换到一个新的世界。查看观察者设计模式以了解如何执行此操作。

答案 1 :(得分:0)

我们可以将PropertyChangeListeners用于javabeans并根据需要执行所需的操作。您可以查看以下网址:

Property Change Listeners in Java

希望这有助于满足您的需求。