首页 > 解决方案 > 为我的 java 游戏渲染不同层中的对象的有效方法是什么

问题描述

我正在学习如何用 java 和 eclipse 制作游戏。我希望我现在正在制作的游戏(一个简单的平台游戏)能够在不同的图层中绘制对象。我希望玩家在前面,敌人在中间,平台/方块在后面。

我游戏中的所有对象在其构造函数中都有一个渲染层 int。我正在处理渲染层的当前方法是为每个渲染层提供单独的渲染函数,这些渲染层贯穿所有对象并检查它们的渲染层值。如果对象具有正确的 renderLayer 值,它将被绘制,否则将不会被绘制,并将在需要它的相应 renderLayer 值的函数中绘制。

这是代码:

public void render1(Graphics g){
    for(int i = 0; i < object.size(); i++){
        GameObject tempObject = object.get(i);
        if(tempObject.renderLayer == 1){
            tempObject.render(g);
        }
    }
}

我对每一层都有这些渲染功能之一。在游戏循环中,渲染函数是这样调用的:

handler.render1(g);
handler.render2(g);
handler.render3(g);

我的方法也完全符合我的要求,但问题是我的游戏有时会滞后或卡顿,并且我的 PC 上的 cpu 使用率高达 50-60%。我相当肯定现代计算机运行这个游戏不应该有问题。

有没有更好的方法来解决这个问题?我有正确的想法还是我这样做完全错误?

非常感谢您的帮助!万分感谢!

标签: javagraphicsrender

解决方案


推荐阅读