我正在学习如何用Java和Eclipse制作游戏。我希望我现在正在制作的游戏(一个简单的平台游戏)具有在不同图层上绘制的对象。我希望玩家在前面,敌人在中间,而平台/方块在后面。
我游戏中的所有对象在其构造函数中都有一个render层int。我正在处理渲染层的当前方法是,为贯穿所有对象并检查其renderLayer值的每个渲染层具有单独的渲染功能。如果对象具有正确的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%。我相当肯定,现代计算机运行该游戏应该不会出现问题。
是否有更好的解决方法?我有正确的主意还是做错了?
非常感谢您的帮助!多谢!