首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java for loops减速游戏

Java for loops减速游戏
EN

Stack Overflow用户
提问于 2012-02-11 02:03:48
回答 2查看 639关注 0票数 0

我遇到了一些麻烦,因为我在java中有一个巨大的绘图函数,我运行了很多for循环。我想绘制的对象在ArrayList中,所以我必须使用for循环来绘制它们。有没有什么方法可以让这个过程更快?我已经集成了纹理剔除,这意味着任何不需要的东西都不会被绘制。但for循环对所有对象运行: 1.评估对象是否实际可见,是否应该绘制;2.如果可见,则绘制对象。

提前谢谢你,希望你能帮我:

下面是我的用法:

代码语言:javascript
复制
for(int loop = 0; loop < objects.size(); loop++)
{
    g2d.drawImage(objects.get(loop).image, objects.get(loop).x, objects.get(loop).y, null)
}

显然,我在其他地方初始化了我的ArrayList:

代码语言:javascript
复制
ArrayList<Block> objects = new ArrayList<Block>();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-11 03:24:10

如果for循环的开销确实是罪魁祸首,那么您可以像这样对其进行优化:

代码语言:javascript
复制
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);
}
票数 0
EN

Stack Overflow用户

发布于 2012-02-11 02:48:53

速度慢的一种可能是您在同一行中调用相同的objects.get(循环)3次。然而,JIT可能会优化这一点。一个比我更了解JIT的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9232556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档