我目前正在使用Swing开发一款roguelike游戏。我正在使用JLabel数组来显示切片。当用户输入方向时,我使用以下方法重绘整个标签(我在这里使用简化的变量名称):
for (int i=0 ; i<array.length ; i++){
for(int j=0 ; j<array[i].length ; j++){
this.remove(array[i][j]);
array[i][j] = new JLabel(new ImageIcon(TILEARRAY[i][j]));
this.add(array[i][j]);
this.validate();
}
}
但处理起来非常沉重,重新绘制整个面板约0.5秒,当我按下方向时,它无法快速绘制以实现实时显示(它实际上是循环,沿着等待时间,当整个位移完成时,绘制)。我想知道是否有一种更容易,更快捷的方法来实现这一点,具有“平滑”的感觉(让我们说像Stone Soup Dungeon Crawl(瓷砖版)),使用Swing。
对于高效的Java库2D库的每一个建议也是受欢迎的。我知道有Slick2D,但这种游戏有没有其他好的图书馆?
由于
(对不起,如果我的英语不好,我不是母语为英语的人)
答案 0 :(得分:2)
在两个循环之后只调用this.validate();
一次以避免布局首选项重新计算
更新。将ImageIcons保留在Map中并重用它们而不是重新创建。键可以是i +&#34; _&#34; + j String