本文介绍一个简单的扫雷游戏例子,屏幕抓图如下。

可执行的jar文件(j2sdk1.4.2_08编译打包,包括源代码):附件:jMine.jar(20K)
『要解决的问题』
1. 地雷,标识棋等图形的绘制;
2. 游戏数据(地雷位置)的产生;
3. 非地雷格子显示数字的计算;
4. 游戏逻辑
『包中源文件列表』
- hysun.minegame
-- ConfigDialog.java
-- FieldCell.java
-- GameFrame.java
-- GamePanel.java
-- GraphicsUtil.java
- ConfigDialog(extends JDialog)是配置游戏数据(雷场行列数,地雷数目)的对话框,就不多说了。
- GameFrame(extends JFrame)只是提供一个应用窗口,也不说了。
- GraphicsUtil提供图形绘制方法。
- FieldCell代表一个格子。
- GamePanel(extends JComponent implements MouseListener)代表整个雷场,并且控制游戏逻辑。
『GraphicsUtil』
该类提供static方法,绘制游戏中各种图形,并且将格子大小设成32x32。详情如下表所列:
| 未知区域 [蓝色区域] |
....
public static Color ukcolor = new Color(99, 130, 191);
....
public static void drawUnknown(Graphics g, int x, int y) {
g.setColor(ukcolor);
g.fillRect(x, y, 32, 32);
}
|
| 地雷 | ....
public static Color mbcolor = new Color(90, 90, 90);
....
public static void drawMine(Graphics g, int x, int y) {
g.clearRect(x, y, 32, 32);
g.setColor(mbcolor);
g.fillOval(x+5, y+9, 21, 19);
g.setColor(Color.black);
g.fillRect(x+11, y+5, 10, 6);
}
|
| 地雷标识旗 [小红旗] |
....
public static void drawFlag(Graphics g, int x, int y) {
g.clearRect(x, y, 32, 32);
g.setColor(Color.red);
g.fillRect(x+8, y+8, 16, 10);
g.setColor(Color.black);
g.drawLine(x+8, y+8, x+8, y+24);
g.drawLine(x+9, y+8, x+9, y+24);
}
|
| 非地雷格数字(0-8) |

本文介绍了使用Java实现扫雷游戏的过程,详细讲解了GraphicsUtil类的图形绘制,FieldCell类的格子逻辑,以及GamePanel类的游戏逻辑和初始化。GamePanel通过监听鼠标点击事件来控制游戏进程,实现扫雷的游戏规则。
最低0.47元/天 解锁文章
2654

被折叠的 条评论
为什么被折叠?



