Java 平台游戏性能

标签 java performance graphics frame-rate

我最近开始使用 Java 开发 2d 平台游戏,并提出一个与性能相关的问题。

在我的游戏中,我有一个世界(目前相对较小)。

但是超过一半的世界对于玩家的相机来说是不可见的,但是我仍在绘制整个世界(甚至是看不见的部分)。

这就是我现在正在做的事情。

@Override
public void paintComponent(Graphics g){
    g.translate(player.camX(), player.camY());

    for (GameObject gameObject : solidObjects){
        if (gameObject.isTouching(player.getCameraRect()))
            gameObject.paint(g);
    }

    player.paint(g);

    for (GameObject gameObject : unSolidObjects){
        if (gameObject.isTouching(player.getCameraRect()))
            gameObject.paint(g);
    }

}

所以问题是,在绘制之前使用 if 语句检查它是否在屏幕上会更快吗?

最佳答案

是的。

检查它是否在屏幕上应该不超过 1 或 2 个步骤。

绘制所有内容需要您将每个像素绘制到屏幕上,无论是否使用它。

关于Java 平台游戏性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38448706/

相关文章:

java - 实现 Iterable 的通用类

java - 在java中重试FTPClient(apache commons net)上的连接

java - 考虑 "if"语句和异常的长期性能成本

c# - 在 C# 中制作图形饼图

opengl - 在几秒钟而不是几小时内旋转数百个 JPEG

java - Box2D - 不能破坏多个固定装置

运行 JFlex 生成的词法分析器时出现 Java 错误

c - 读写位置之间的距离对缓存性能有影响吗?

套接字中的回调函数为 sk_data_ready()

java - Graphics2D - 文本在缩放坐标空间中很大