【发布时间】:2021-06-05 05:17:23
【问题描述】:
随着 Java 8 的最新更新,我使用 Java swing 和 awt 制作的 MineSweeper 游戏现在在视觉上出现了极大的滞后。 (当我击中一个地雷时,现在我可以看到每个地雷一个接一个地出现,以前它们似乎同时出现。) 我只是将游戏放在一个 jar 文件中。如果我使用bat文件打开游戏,我可以设置: -Dsun.java2d.accthreshold=0 -Dsun.java2d.d3d=false -Dsun.java2d.ddoffscreen=false -Dsun.java2d.noddraw=true (-Dsun.java2d.d3d=false 是主要的。不确定是否其他是需要的,甚至有所作为......) 这加快了游戏的运行速度,但现在后台有命令提示符,并且找不到存储分数的文件夹。 如果我使用 jar 文件的 Windows 快捷方式,我不知道如何设置这些属性,但它在后台没有命令提示符的情况下运行,并且可以找到分数文件夹。
我希望做的是在 java 类中添加 System.setProperty() 调用以使其工作,但无济于事:
System.setProperty("sun.java2d.d3d", "false");
System.setProperty("sun.java2d.ddoffscreen", "false");
System.setProperty("sun.java2d.noddraw", "true");
这似乎设置了属性,但没有产生 bat 文件所做的任何结果。
编辑:奇怪的是,调用 System.setProperty("sun.java2d.accthreshold", "0");在 Main 中,其余的都打印:New Default Acceleration Threshold: 0 to the console。
我怎样才能设置它们以便这个游戏可以在任何机器上正确运行?
【问题讨论】:
-
你有没有试过把那三行放在
main方法的开头? -
是的。那就是他们所在的地方。我什至可以对它们都使用 System.getProperty(),这表明它们已被设置,但视觉效果仍然很慢。