【问题标题】:How do I run my java program off screen and update the view when I ask it to?如何在屏幕外运行我的 java 程序并在我要求时更新视图?
【发布时间】:2014-11-23 14:24:43
【问题描述】:

我目前正在高中学习计算机科学并使用“ReadyToProgram Java”。我们正在尝试使用基本形状和类等制作乒乓球游戏。我的游戏更新其视图的方式是清除整个屏幕,然后在 while 循环中重新绘制球拍和乒乓球。一直在闪烁!当我在过去的年级使用图灵时,我们有一个名为 view.update 的命令,它在屏幕外运行程序,只有当你使用 view.update 时,程序才会更新屏幕。 java中有类似的东西吗?谢谢!

【问题讨论】:

  • 你在使用 Swing 吗?
  • 不,只准备对 java 进行编程。这是一个学习如何用java编程的基础平台。

标签: java


【解决方案1】:

您正在寻找的概念称为双缓冲。一般来说,这个概念是您有一个离屏缓冲区,您可以对其进行图形操作,然后将离屏缓冲区复制到屏幕显示。

我不确切知道您在工作中使用的是什么图形工具包。 AWT 可以使用 Graphics.drawImage() 来做到这一点。有关如何执行此操作的讨论,请参阅Double Buffering with awt。在 Swing 中,这可以通过JComponent.setDoubleBuffered() 处理

如果您正在使用其他东西,您可能希望使用确切的短语“双缓冲”来查找它。

更新

当然,另一个答案是不清除整个屏幕并重新绘制。鉴于乒乓球物体的移动方式,您应该能够只清除每个球拍和球移动的部分。

【讨论】:

  • 谢谢,我去查一下!至于您的第二个解决方案,我正在考虑这样做,但任务要求我在球员比赛时打印得分。我知道的唯一命令是 print 和 println。因此,如果玩家得分,分数将在旧分数之后打印,我试过 pinrting "/b/b/b/b" 但它似乎并没有删除旧分数,只打印 /b/b/b /b 哈哈。所以我唯一的选择是清除整个屏幕,以便能够更新分数并将其放在同一位置。如果你知道这个问题的解决方案,那就太棒了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 1970-01-01
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多