最近在写一个扫雷程序,已经能够正常游戏。现想模仿Vista版的扫雷,在挖到地雷时,将所有的地雷按一定顺序翻开同时播放地雷爆炸的声音。
可实际运行时发现总是先把声音播完然后所有地雷一下子全部翻开。。简要代码如下
public class MineSweeper extends JFrame//游戏窗口
{
..............
}public class MineMatrix extends JPanel//雷区
{
.................
public void gameFinish(boolean win)
{
for (int i = 0; i < MineSweeper.getLine(); i++)
{
for (int j = 0; j < MineSweeper.getCol(); j++)
{
mineLabel[i][j].gameLoseCheck();
}
}
}
..........
}public class MineLabel extends JLabel//利用setIcon()方法更换图片
{
boolean haveBomb;
ImageIcon imageIcon = ........
public void gameLoseCheck()
{
if (haveBomb)
{
audioPlay();//或者创建一个run方法调用audioPlay()的线程,结果均如前文所述
setIcon(imageIcon[3]);
}
}
...............
}
可实际运行时发现总是先把声音播完然后所有地雷一下子全部翻开。。简要代码如下
public class MineSweeper extends JFrame//游戏窗口
{
..............
}public class MineMatrix extends JPanel//雷区
{
.................
public void gameFinish(boolean win)
{
for (int i = 0; i < MineSweeper.getLine(); i++)
{
for (int j = 0; j < MineSweeper.getCol(); j++)
{
mineLabel[i][j].gameLoseCheck();
}
}
}
..........
}public class MineLabel extends JLabel//利用setIcon()方法更换图片
{
boolean haveBomb;
ImageIcon imageIcon = ........
public void gameLoseCheck()
{
if (haveBomb)
{
audioPlay();//或者创建一个run方法调用audioPlay()的线程,结果均如前文所述
setIcon(imageIcon[3]);
}
}
...............
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货