Java 如何从其他BuffereImage';s public buffereImage getMap() { map1=新的BuffereImage(50005000,BuffereImage.TYPE_INT_RGB); Graphics g=map1.getGraphics(); 对于(int i=0;i

Java 如何从其他BuffereImage';s public buffereImage getMap() { map1=新的BuffereImage(50005000,BuffereImage.TYPE_INT_RGB); Graphics g=map1.getGraphics(); 对于(int i=0;i,java,Java,我试图在Java上制作我的第一个游戏,但似乎遇到了一个问题:它从每秒60帧下降到13-21帧。。问题发生在代码的这一部分。我试图从ArrayListimagesToRender中获取一组BuffereImage,并在map1上绘制它们各自的x、y坐标。我的想法是,我想用新的图像不断更新游戏地图,这些图像必须被渲染到地图中。FPS不会逐渐下降:它开始并始终保持在13到21 FPS之间。这种方式是否可能会占用太多的处理能力?如果是,有没有更好的方法?如果没有,我如何解决问题?谢谢。为什么需要5000

我试图在Java上制作我的第一个游戏,但似乎遇到了一个问题:它从每秒60帧下降到13-21帧。。问题发生在代码的这一部分。我试图从
ArrayList
imagesToRender
中获取一组
BuffereImage
,并在
map1
上绘制它们各自的x、y坐标。我的想法是,我想用新的图像不断更新游戏地图,这些图像必须被渲染到地图中。FPS不会逐渐下降:它开始并始终保持在13到21 FPS之间。这种方式是否可能会占用太多的处理能力?如果是,有没有更好的方法?如果没有,我如何解决问题?谢谢。

为什么需要5000X5000图像?你真的有这么大的屏幕分辨率吗?为什么不能使用剪辑边界渲染真正可见的片段?5000x5000太大了;你几乎肯定没有那么大的屏幕分辨率。每帧渲染的区域超过12个1920x1080。为什么不直接把它画到屏幕上,或者只画你需要的区域?@StanislavL计划是用这个代码不断更新整个游戏地图,然后只画我想显示的地图的一部分,然后在屏幕上画出来。另一段代码占据了地图的一部分。我把它减少到1000乘1000,现在效果很好。谢谢您为什么需要5000X5000图像?你真的有这么大的屏幕分辨率吗?为什么不能使用剪辑边界渲染真正可见的片段?5000x5000太大了;你几乎肯定没有那么大的屏幕分辨率。每帧渲染的区域超过12个1920x1080。为什么不直接把它画到屏幕上,或者只画你需要的区域?@StanislavL计划是用这个代码不断更新整个游戏地图,然后只画我想显示的地图的一部分,然后在屏幕上画出来。另一段代码占据了地图的一部分。我把它减少到1000乘1000,现在效果很好。谢谢您为什么需要5000X5000图像?你真的有这么大的屏幕分辨率吗?为什么不能使用剪辑边界渲染真正可见的片段?5000x5000太大了;你几乎肯定没有那么大的屏幕分辨率。每帧渲染的区域超过12个1920x1080。为什么不直接把它画到屏幕上,或者只画你需要的区域?@StanislavL计划是用这个代码不断更新整个游戏地图,然后只画我想显示的地图的一部分,然后在屏幕上画出来。另一段代码占据了地图的一部分。我把它减少到1000乘1000,现在效果很好。非常感谢。
public BufferedImage getMap()
{
    map1 = new BufferedImage(5000,5000,BufferedImage.TYPE_INT_RGB);
    Graphics g = map1.getGraphics();
    for(int i = 0; i < imagesToRender.size(); i++)
    {
        g.drawImage(imagesToRender.get(i), xCoords.get(i), yCoords.get(i), sizes.get(i), sizes.get(i),null);
    }
    g.dispose();
    return map1;
}