java - 为我的 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%。我相当肯定现代计算机运行这个游戏不应该有问题。
有没有更好的方法来解决这个问题?我有正确的想法还是我这样做完全错误?
非常感谢您的帮助!万分感谢!
解决方案
推荐阅读
- awk - awk 查找每个键的最大值和最小值
- c++ - struct的指针以及如何访问元素
- jquery - 如何将 jQuery 变量传递给 Laravel Helper 参数?
- python - 查找由 scikit-image 的 blob_log(高斯拉普拉斯算子)方法识别的 blob 列表的平均像素值
- javascript - 在 jQuery 中增加 2 类名
- javascript - Angular:从不同的组件切换 HostBinding?
- ruby-on-rails - 使用 HTTParty 和 Ruby on Rails 使用分页的 Github API 数据
- r - R中的COSH距离
- javascript - 如何使箭头更改下拉的选定选项
- karate - For 循环在空手道的功能中没有按预期工作