几天以来,我一直在使用 slick for java,但遇到了一个严重的问题。如果我使用 800x600 的解决方案运行一个完全空的应用程序(它只显示 fps),我会得到 700 到 800 之间的 fps 计数。如果我现在将一个包含 13300 个条目的数组绘制为绿色和白色矩形网格,则 fps 下降到70左右。
随着数组中的条目越来越多,它变得非常慢。例如,在 1024x768 的解决方案和具有 21760 个条目的数组中,fps 下降到 40。
我如何绘制一个条目:
public void draw(Graphics graphics){
graphics.setColor(new Color(getColor().getRed(), getColor().getGreen(), getColor().getBlue(), getColor().getAlpha()));
graphics.fillRect(getPosition().x, getPosition().y, getSize().x, getSize().y);
Color_ARGB white = new Color_ARGB(Color_ARGB.ColorNames.WHITE);
graphics.setColor(new Color(white.getRed(), white.getGreen(), white.getBlue(), white.getAlpha()));
}
这就是我绘制完整数组的方式:
public void draw(Graphics graphics) {
for (int ix = 0; ix < getWidth(); ix++) {
for (int iy = 0; iy < getHeight(); iy++) {
getGameGridAt(ix, iy).draw(graphics);
}
}
}
在我看来,21760 并没有那么多。我的代码有什么问题吗,或者是因为太慢而无法绘制这么多矩形?