![](/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.