JavaFX画布2D游戏:移动背景与绘画



过去几天我一直在查找教程和东西。我做程序员已经很多年了,但直到现在我从来没有搞过制作游戏。

我正在制作一个使用 Java 画布的小型 2D 游戏,但我正在尝试选择绘制磁贴地图的正确方法。

就目前而言,我的画布是 640x512,它目前会将每帧速率的所有可见图块绘制到视口上。对我来说,这似乎有点过分了,但我读到的一切都表明了这一点。

我只是好奇是否有办法在视口后面绘制整个地图并移位,这样它只需要绘制一次,然后以每帧速率渲染地图上方的对象。

任何意见将不胜感激。谢谢大家!

我正在制作一个使用 Java 画布的小型 2D 游戏, 但我正在尝试选择绘制瓷砖地图的正确方法。

JavaFX 渲染基本上有两种方式:场景图(多节点、自动渲染)或画布(单节点、手动渲染)。如果屏幕上有许多对象,则出于性能原因,首选后者。否则,前者,它提供了更高层次的绘图方法。

就目前而言,我的画布是 640x512,它目前将绘制所有 视口上可见的每帧速率磁贴。

使用 JavaFX Canvas 执行此操作是完全可以的。JavaFX 具有强大的渲染管线,可以找出渲染场景图的最佳和最有效的方法。如果像素不在活动视口(屏幕上实际可见的部分)中,则不会渲染该像素。您可以在此处阅读有关 JavaFX 体系结构的信息。

我只是好奇是否有办法在后面绘制整个地图 视口和移位,因此只需绘制一次,然后渲染 地图上方的对象每帧速率。

在较低级别的JavaFX甚至更低的Direct3D(Windows)中,OpenGL(Mac/Linux)将为您处理此问题。也许不完全是这样,但它们通常会缓存纹理以卸载内存总线。在大多数情况下,在尝试优化渲染时,所采取的步骤实际上会减慢进程,因此从某种意义上说,这些步骤只会妨碍适当的低级优化。因此,降低了整体性能。

总而言之,首先专注于完成应用程序逻辑,然后才担心优化。即便如此,这也是一个敏感问题,必须使用适当的工具来完成,使您能够分析和查明应用程序中的瓶颈。

最新更新