扫雷游戏制作过程(C#描述):第四节、菜单操作
2017-08-30 20:46
519 查看
前言
这里给出教程原文地址。该项目已经放在github上托管。
菜单操作
我们现在的程序单击菜单的时候不会有任何反应,这一节我们主要介绍菜单的相关代码,使得菜单能够正常使用。现在我们希望在对应级别(初级、中级、高级)的按钮的前显示打勾,以表示目前的游戏等级,并且选择对应级别的按钮,能有相应的变化。我们双击菜单栏中的Beginner便会自动进入相应的函数代码区,在此函数中的代码,便是点击Beginner时所执行的代码。这里做一个说明:每个函数的首字母必须大学,所以此时你必须修改Beginner属性栏中的Name,同理,菜单栏下每个选项的属性中的Name都需要修改,否则会报错。
分别双击Beginner,Intermediate,Export三个菜单栏,做如下修改:
private void BeginnerBToolStripMenuItem_Click(object sender, EventArgs e) { //我们令Beginner中的行数,列数,地雷的数量分别为:10,10,10 Sweep_width = 10; Sweep_high = 10; Sweep_num = 10; } private void IntermediateIToolStripMenuItem_Click(object sender, EventArgs e) { //我们令Beginner中的行数,列数,地雷的数量分别为:16,16,40 Sweep_width = 16; Sweep_high = 16; Sweep_num = 40; } private void ExpertEToolStripMenuItem_Click(object sender, EventArgs e) { //我们令Beginner中的行数,列数,地雷的数量分别为:16,30,99 Sweep_width = 30; Sweep_high = 16; Sweep_num = 99; }
为了方便操作,我们自己定义一个NewGame()函数,一个SetLevel()函数,这里说明下,你可能觉得定义的NewGame()函数并多此一举,两个函数合并不就得了,NewGame()函数在后来会补进新的代码,在后面的章节,就会体现出来。操作如下:
private void SetLevel() { BeginnerBToolStripMenuItem.Checked = false; IntermediateIToolStripMenuItem.Checked = false; ExpertEToolStripMenuItem.Checked = false; //初始化 switch (Sweep_num) { case 10: BeginnerBToolStripMenuItem.Checked = true; break; case 40: IntermediateIToolStripMenuItem.Checked = true; break; case 99: ExpertEToolStripMenuItem.Checked = true; break; default: break; } //判断当前是设置哪个等级,菜单栏中当前等级前显示打钩符号 Properties.Settings.Default.Sweep_high = Sweep_high; Properties.Settings.Default.Sweep_width = Sweep_width; Properties.Settings.Default.Sweep_num = Sweep_num; Properties.Settings.Default.Save(); //保存设置到Settings中 NewGame(); //调用NewGame()函数 } private void NewGame() { UpdateSize(Sweep_width, Sweep_high); Refresh(); }
此时需要在BeginnerBToolStripMenuItem_Click(object sender, EventArgs e)中调用SetLevel()函数,来保存设置,更改窗口大小,重绘雷区,另外两个函数做同样的修改。
private void BeginnerBToolStripMenuItem_Click(object sender, EventArgs e) { //我们令Beginner中的行数,列数,地雷的数量分别为:10,10,10 Sweep_width = 10; Sweep_high = 10; Sweep_num = 10; SetLevel(); }
最后在函数public Form_Main()中,调用SetLevel(),使程序刚运行时,自动在相应的等级前显示打钩按钮。添加如下代码:
SetLevel();
最后按Ctrl + F5编译运行,得到最终结果:
双击菜单栏中的New Game,Exit,做如下修改:
private void NewGameToolStripMenuItem_Click(object sender, EventArgs e) { NewGame(); } private void ExitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); }
自此菜单栏的部分功能已经得到实现。
相关文章推荐
- 扫雷游戏制作过程(C#描述):第五节、菜单操作(续)
- 扫雷游戏制作过程(C#描述):第三节、雷区绘制
- 扫雷游戏制作过程(C#描述):第二节、界面设计
- 扫雷游戏制作过程(C#描述):第一节、创建项目
- 扫雷游戏制作学习过程
- 详解从零开始---用C#制作扫雷游戏
- 扫雷游戏制作全过程02 之JLabel弯路
- 扫雷游戏制作全过程 03 时间伪动画
- 扫雷游戏制作全过程00
- 扫雷游戏制作全过程02 之 JButton 弯路
- 扫雷游戏制作全过程04 添加音乐
- c# 扫雷游戏制作步骤
- 扫雷游戏制作全过程01 地雷生成及表示
- 扫雷游戏制作全过程05 之最终话
- C#制作Arcgis Engine鹰眼全过程(引自ESRI中国社区)
- C#制作带历史信息的菜单
- 关于游戏制作过程中遇到的几个问题记录
- Toolbar制作菜单条过程详解
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十一)制作精美的Mini地图①
- C# 游戏制作中去除敏感字符/串