我们正在为我们的学校作业制作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()中找到,我们不知道这是不是问题。
答案 0 :(得分:3)
修复方法是单独创建玩家列表(在玩家加入/离开游戏时添加/删除玩家)并继续调用他们的渲染方法而不创建新实例。