我最近开始使用 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/