簡體   English   中英

Java for循環會減慢游戲速度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM