渲染 Java AWT 画布以适应屏幕
Posted
技术标签:
【中文标题】渲染 Java AWT 画布以适应屏幕【英文标题】:Render a Java AWT canvas to fit screen 【发布时间】:2015-11-10 11:23:54 【问题描述】:我目前正在使用 Java 的 AWT 库制作游戏 游戏以 1080p 渲染,在 1080p 屏幕上运行良好,但超出 720p 显示器的边缘,并在 4k 显示器上留下大量空白空间。我想根据屏幕大小缩小或放大画布以适应屏幕。
(编辑) 如果您在使用 AWT 游戏库时遇到问题,我建议您改用 LWJGL/OpenGL,因为它是专门构建的,比 AWT 快得多,并且具有更高的功能。 OpenGL 的语法更复杂,但是,创建一个满足不太复杂需求的简单接口并不难。还应该注意的是,虽然安装起来可能很复杂,但 LWJGL 有很多后台工作,例如内置的游戏速度和屏幕缩放。阻力最小的路径并不总是最好的路径。
【问题讨论】:
这对你来说是一项巨大的工作。 【参考方案1】:答案是,您可以使用 ToolKit.getScreenSize / getScreenResolution 使其全屏显示。然后,您要做的是添加在 1080p 屏幕上看起来不错的大小和分辨率的默认值,将 ComponentListener 添加到 (J)Frame 或其 ContentPane,并实现 componentResized。然后使用默认屏幕大小和默认分辨率的比例重新调整游戏中所有内容的大小。
Dimension DEFAULT_SIZE = ...;
int DEFAULT_RESOLUTION = ...;
Dimension actualScreenSize = Toolkit.getToolkit().getScreenSize();
int actualResolution = Toolkit.getToolkit().getScreenResolution();
AffineTransform at = AffineTransform.getScaleInstance(...,...);
//Apply scaling to your Components and Shapes
【讨论】:
以上是关于渲染 Java AWT 画布以适应屏幕的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何使用 createJs 创建响应式画布以适应不同的移动设备屏幕?