所以我正在修读我的第一门课程,而且我对我的最终项目感到难过。我必须从我的教授那里获得一个levelReader,从头开始创建Sokoban游戏。现在我的整个游戏都正常运行;瓷砖被绘制,玩家和盒子正确移动等。
但是,我有两个很小的问题。这些在最终提交时几乎可以被忽略,但我想弄清楚这一点,所以我有更深刻的理解。
所以我的两个问题是
a)在最后一个级别完成后(level == totalLevels
,其中级别1
是索引0
),窗口将被处理并
b)我希望initLevel生成的每个新级别都可以调整窗口大小。
public void initLevel(int level) {
if(level == totalLevels) { this.dispose(); } //incorrect, unsure what to use
/*
.
. BODY
.
*/
this.setPreferredSize(new Dimension(50*currentLevel.length, 50*currentLevel[0].length));
//sets the window size initially but succeeding levels don't resize
repaint();
}
public static void main(String args[]) {
JFrame f = new JFrame("Sokoban");
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLayout(new FlowLayout());
f.add(new Sokoban("levels.txt"));
f.pack();
f.setVisible(true);
}
从两个类中删除了无关的代码。