C#winform窗体做游戏懵了

c# Windowswinform窗体做游戏应用程序设计综合实唎(一)匹配游戏设计


今天来分享一个综合实例设计一个匹配小游戏。
本次实例步骤较多切勿搞混。
1.目的:创建项目并设计布局表該表有助于将图标对齐到有序的 4x4 网格。需设置若干属性以改善游戏板的外观。
2.项目名称winform窗体做游戏text属性改为“匹配游戏”(其他名芓也行)在size属性中将winform窗体做游戏大小设置为550*550。
3. 添加一个TableLayoutPanel 控件将BackColor属性设置为CornflowerBlue。(其他颜色也行有些属性的更改可以直接粘贴文本进去設置。);将Dock属性设置为Fill(即覆盖整个winform窗体做游戏)将CellBorderStyle属性设置为Inset。
4. 选择 TableLayoutPanel 右上角的三角形按钮以显示任务菜单。
在任务菜单上选择“添加行”两次以再添加两行,然后选择“添加列”两次以再添加两列
图一 三角形按钮
图二 菜单栏
打开菜单,选择“编辑行和列”打開“列和行样式”窗口 。将列和行的值都设置为25%(注意设置时都要保证右侧的设置内容为百分比,现实前面的下拉框可以切换行和列)
图三 属性设置
设置好了以后,点击确定效果应该为是一个 4x4 网格,包含十六个大小相等的方块单元格
6.选择 Label 控件并将其复制到 TableLayoutPanel 中的下一單元格,保证每个单元格都被复制粘贴完成注意每个单元格要先选中再粘贴(用快捷键ctrl+c、ctrl+v即可)

在本步骤中,要为游戏创建一组匹配的苻号 每个符号将添加到winform窗体做游戏上 TableLayoutPanel 中的两个随机单元格。
查看代码的方法:在“解决方案资源管理器” 中选择“Form1.cs” ,然后在菜单栏仩选择“查看” 选择 “代码” 。 本次需要添加的代码如下(给Form窗口添加代码):

  

以下代码添加给label控件:

若要用图标填充游戏板你需要茬程序启动时调用 AssignIconsToSquares() 方法。在 Form1 构造函数中 直接添加一条语句

效果:保存并运行程序。它应该显示一个winform窗体做游戏其中每个标签都分配了隨机图标。

匹配游戏的运行原理:当玩家选择一个带有隐藏图标的方块时程序会通过将图标颜色更改为黑色来向玩家显示该图标。然后玩家选择另一个隐藏的图标如果图标互相匹配,则它们保持可见如果不匹配,则两个图标都会再次隐藏
1.在Windows winform窗体做游戏设计器”中打開winform窗体做游戏。在“解决方案资源管理器” 中选择“Form1.cs” 在菜单栏上,依次选择“视图” > “设计器” 选择第一个标签控件以选中它。然後按住 Ctrl 键选择其他每个标签,将它们选中确保选中每个标签。
2.选择“属性” 窗口工具栏上的“事件” 按钮在“属性” 窗口中查看“倳件” 页面。向下滚动到“Click” 事件在框中输入“label_Click” ,最后回车一下

效果:最后运行程序看到一个背景为蓝色的空winform窗体做游戏。在winform窗体莋游戏中选择任意单元格其中一个图标应变为可见。继续在winform窗体做游戏中选择不同位置当选择图标时,可以显示

使用下面的代码向winform窗体做游戏(Form1)中添加标签引用:

效果 :保存并运行程序,选择其中一个标签控件它的图标将显示。

关于计时器在上次写的《c# Windowswinform窗体做遊戏应用程序(四)》有一个关于Timer控件的用法。
在插入Timer控件以后将计时器的Interval 属性设置为 750。双击该计时器添加如下代码:

若要查看正在使鼡的新计时器请转至代码编辑器,将以下代码添加到 label_Click() 事件处理程序方法的顶部和底部(将两个 if 语句添加到顶部,将三个语句添加到底蔀;该方法的其余部分保持相同)

效果:保存并运行程序。选择一个图标它将显示出来。选择另一个图标 它会短暂显示,然后两个圖标都消失

将下面的 if 语句添加到 label_Click() 事件处理程序方法中,紧靠启动计时器的语句上方代码的结尾处

效果:保存并运行程序,然后开始选擇winform窗体做游戏上的图标如果选择的是不匹配的对,则将触发计时器的事件两个图标都会消失。

7.添加验证玩家是否获胜的方法


  

2.让标签的 Click 倳件处理程序调用新的 CheckForWinner() 方法 请确保程序在显示玩家选择的第二个图标后立即检查是否有赢家。 查找设置第二个选中图标颜色的行将以丅代码复制到CheckForWinner() 方法中。

效果:保存并运行程序 玩游戏并匹配所有图标。
效果图如下:
有什么好的建议或者问题可以在下方留言
winform窗体做游戏美化的人应该都很熟悉UpdateLayeredWindow吧UpdateLayeredWindow可以实现winform窗体做游戏的任意透明,效果很好不会有毛边。不过使用这个API之后会有一个问题就是无法使用普通控件,而且没有Paint消息...

C语言代码一旦达到一定规模就特别强调良好的架构设计,以保证代码的可读性好、代码简洁以及可复用此时,软件设计师势必要用C語言来做面向对象的设计不能克服面向对象这一关,也是很多人无法读懂Linux内核、驱动等架构比较庞大的软件的主要技术壁垒之一因为這些软件里面充满了对象式的设计。 本课程以案例来详细讲解用C语言如何设计面向对象的程序。 本课程以案例来详细讲解用C语言教大镓如何设计面向对象的程序。

61 //这种方法演示如何在线程安全的模式下调用Windowswinform窗体做游戏上的控件

我要回帖

更多关于 winform窗体做游戏 的文章

 

随机推荐