【发布时间】:2016-09-29 16:08:43
【问题描述】:
我们正在为我们的学校作业制作一款 2D 自上而下的射击游戏。但是我们遇到了一个我们无法解决的问题。我们接收玩家并希望将他们全部呈现。当我们注释给定的代码时,滞后消失了,RAM 使用稳定。但是,当我们将零件留在其中时,ram 将以每秒 50 MB/s 的速度增加。
我们在此代码中找不到错误,如果您知道什么,请告诉我们。 如果您需要更多信息,请告诉我,我会尽快回复。
List<SimplePlayer> localMultiplayers = new ArrayList(this.multiplayers);
this.multiplayers.clear();
for (SimplePlayer splayer : localMultiplayers) {
try {
Player p = new Player(splayer, this);
batch.setProjectionMatrix(game.camera.combined);
batch.begin();
p.render(batch);
this.fontwhite.draw(batch, splayer.getName(), splayer.getX(), splayer.getY() + 76);
this.fontred.draw(batch, Integer.toString(splayer.getHitPoints()), splayer.getX() + 12, splayer.getY() + 64);
batch.end();
} catch (Exception ex) {
Logger.getLogger(GameScreen.class.getName()).log(Level.SEVERE, null, ex);
}
}
编辑:这段代码在我们的 GameScreen.render() 中找到,我们不知道这是否是问题所在。
【问题讨论】:
-
如果你只有一个玩家怎么办?这可以告诉你问题是否存在。显示您的播放器类,可能还有负责新播放器的代码,您可以将它们添加到数组列表中。
标签: java memory-leaks libgdx 2d render