Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何监视另一个类中的变量并在其值更改时运行方法(java)_Java_Concurrency_2d Games_Java Threads - Fatal编程技术网

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

如何监视另一个类中的变量并在其值更改时运行方法(java),java,concurrency,2d-games,java-threads,Java,Concurrency,2d Games,Java Threads,我正在尝试构建一个图形游戏(java),当玩家到达一个特定点时,它需要在世界之间移动。每个世界由一个扩展GCanvas的类表示,整个游戏由主类管理 我从主课介绍第一世界开始。当玩家到达某一点时,它会改变这个世界级的一个变量。我希望主类监视这个变量,并在这个指标变为真时切换到下一个世界。我认为线程可能会有帮助,但不确定如何做,希望得到一些帮助 这就是主要课程的理念: world1 = new GCWorld1(); add(world1); /**when the player reaches t

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

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

这就是主要课程的理念:

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

谢谢。

我会以不同的方式处理这个问题。我将找到一种方法来通知外部类转换到一个新世界,而不是从线程的外部监视一个变量,从而在轮询上浪费计算能力。查找observer设计模式以了解如何执行此操作

我们可以为javabeans使用PropertyChangeListeners,并根据需要执行所需的操作。您可以查看以下URL以了解此信息:


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

看看这个。这就是你要找的