![](/img/trans.png)
[英]How do i make my game not speed up/slow down depending on the fps in java?
[英]Java for loops slow down game
我在Java中有一个巨大的paint函数并且在许多for循环中运行时遇到了麻烦。 我要绘制的对象在ArrayList中,所以我必须使用for循环将它们全部绘制。 有什么办法可以使速度更快吗? 我已经集成了纹理剔除,意味着不需要的任何东西都不会被绘制。 但是for循环将对所有对象运行:1.评价对象是否实际可见并应绘制2.绘制对象(如果可见)。
在此先感谢,希望您能帮到我:D
[编辑]这就是我的使用方式:
for(int loop = 0; loop < objects.size(); loop++)
{
g2d.drawImage(objects.get(loop).image, objects.get(loop).x, objects.get(loop).y, null)
}
显然,我在其他地方初始化了ArrayList:
ArrayList<Block> objects = new ArrayList<Block>();
变慢的一种可能是,您在同一行中调用了3个相同的objects.get(loop)。 但是,JIT可能会对此进行优化。 比我更精通JIT的人。
如果for
循环的开销确实是罪魁祸首,则可以将其优化如下:
int numBlocks = objects.size();
for(int loop = 0; loop < numBlocks; loop++)
{
Block block = objects.get(loop);
g2d.drawImage(block.image, block.x, block.y, null);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.