我对java完全陌生,我有一个问题正在尝试解决。我正在使用 ACM 库来实现我的目的。我的目标如下:
- 移动标签 1
- 移动标签 2
- 比较标签 1 和标签 2 的位置(当文本相互碰撞时)“使用 'if' 语句”
- 到达顶部后,使用
break
语句停止它。 - 重新开始循环。
如果有人可以帮助我解释如何实现这一点。那将是真棒。我在尝试学习。谢谢!
import acm.graphics.GLabel;
import acm.program.CommandLineProgram;
import acm.program.GraphicsProgram;
public class Main extends GraphicsProgram {
public void run( )
{
int label1_xy = 50;
int label2_xy = 200;
GLabel label1 = new GLabel("Hello World.");
add(label1, label1_xy,label1_xy);
GLabel label2 = new GLabel("Goodbye World.");
add(label2, label2_xy,label2_xy);
while (true)
{
label1.move(10,10);
pause(500);
label2.move(-10,-10);
break;
}
}
}
最佳答案
- 移动标签 1
- 移动标签 2
你已经完成了这两件事。
- 比较标签 1 和标签 2 的位置(当文本相互碰撞时)“使用 'if' 语句”
- 到达顶部后,使用break语句停止它。
您可以通过尝试检索对象的“绑定(bind)”来比较这两个标签的位置。示例:
label1.move(10,10);
pause(500);
if (label1.getBounds().getX() == label2.getBounds().getX()
&& label1.getBounds().getY() == label2.getBounds().getY()) {
break;
} else {
label2.move(-10,-10);
}
- 重新开始循环
您可以通过为 run()
放置另一个 while block 来重新启动它。代码或者只是调用 run()
(注意此处的 StackOverflowError
)。
关于java - java中使用break来停止移动的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32941171/