一:在源码管理器中打开VS

注意,下文这样的打开方式是在 TFS 的源码服务器中打开解决方案。如果我们使用 SVN,则直接在硬盘上打开解决方案就可以了。

打开VS:

然后按上图中的步骤1和2(双击2处),打开我们的解决方案,如下:

注意,双击红框,会显示Solution Explorer。

我们在上一节中,只是创建了打老鼠的解决方案,还完全没有编写任何代码。这个时候运行解决方案一下(记得吗,菜单中Debug->Start without debug,或Ctrl+F5。我喜欢用快捷键,而且你也必须快速熟悉起这些快捷键,使用快捷键可以节约时间)。

运行起来后,是一个空白的Windows窗体,如下:

二:导入资源文件

现在我们就要在这个窗体上打老鼠了。

打老鼠这个游戏的最终效果图如下:

为了完成这个游戏,有两个图片资源要用到(请自行右键下载):

bg.png

mouse.png

请把这两个图片保存到我们的项目的根目录下,请查看下节视频进行图片资源的导入及背景设置:

最后,我们看到的整个VS画面应该是这样的:

三:实现最简单的功能

接下来,我们就该简单的把打老鼠游戏的整个编码实现思想说一下了。我们看到背景上有11个老鼠洞:

1:首先给11个老鼠洞都覆盖上老鼠形象;

2:把全体老鼠形象设置为不可见;

3:给程序设定一个始终,让时钟每隔1秒随机显示一个老鼠形象;

四:视频

非公开,请联系 最课程(www.zuikc.com)

五:代码讲解

现在,我们来看看视频中的代码到底是什么意思:

private List<PictureBox> _mouses = new List<PictureBox>();
        private Timer _timer = new Timer();
        private Random _random = new Random();
        private PictureBox _oldMouse;
        private int _score = 0;

在这里,我们定义了一些变量,其中:

_mouses 用来存放全部的老鼠图片;
  _timer 是一个计时器;
  _random 在这里代表了一个随机数;
  _oldMouse 在这里当前正在出现的那只老鼠;
  _score 用于记录分数,暂时还没起到作用;

再看下面这段代码:

foreach (Control item in this.Controls)
            {
                if(item is PictureBox)
                {
                    _mouses.Add(item as PictureBox);
                }
            }

_timer.Interval = 1000;
            _timer.Tick += _timer_Tick;
            _timer.Start();

foreach 表示这是一个循环,我们需要把所有的老鼠都加入到 _mouses 这个变量中去,因为一开始这个变量中是空的,没有老鼠的;
   _timer.Interval = 1000; 表示为定时器的时间设置为 1 秒;
   _timer.Tick += _timer_Tick; 表示定时器定时时间到的时候,要触发一个函数,这个函数叫 _timer_Tick;
   _timer.Start(); 表示定时器开始计时吧;

再看定时器触发的这个函数:

void _timer_Tick(object sender, EventArgs e)
        {
            if(_oldMouse != null)
            {
                _oldMouse.Visible = false;
            }

int index = _random.Next(1, 11);
            _oldMouse = _mouses[index];

_oldMouse.Visible = true;
        }

在这个函数里面的逻辑就是,如果当前有老鼠正在显示着,就应该先隐藏,让另外一只老鼠出现;

运行程序,我们就会发现每隔 1 秒,就会随机出现一只老鼠;

现在,我们继续完善代码,要实现:当老鼠形象出现的时候,鼠标击中了老鼠则计分+1,并显示出来;

实际上,只要修改上面的 foreach 循环中的代码为:

foreach (Control item in this.Controls)
            {
                if(item is PictureBox)
                {
                    _mouses.Add(item as PictureBox);
                    item.MouseDoubleClick += item_MouseDoubleClick;
                }
            }

即,为老鼠增加鼠标双击事件,其事件方法为:

void item_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            _score++;
            _labelScore.Text = _score.ToString();
        }

这就完成了“鼠标击中了老鼠则计分+1,并显示出来”,我们看到,上面多了个没见过的变量  _labelScore,它是怎么出现的呢,看视频。

六:截止目前为止的打老鼠知识点

到目前为止,我们实现的打老鼠游戏虽然简单,却已经包含了很多的语法知识,如下11个知识点:

接下来,我们就需要一一学习一下这些知识。(注意,在本节下面的详细叙述当中,各个知识点我会只讲到当前必须知道的程度,随着课程的深入会逐步补充各个知识点的深入阐述。)

1和2:被引用的命名空间以及定义当前的类的命名空间

把类在归类一下,就叫命名空间。

命名空间和文件夹的关系?没有关系!当然,常用的做法是,一个命名空间就使用一个文件夹。

如果我们在当前类中要引用到别的类,则方便的做法是把别的类所在的命名空间用using引入进来,如上图的1;

反过来,我们现在在编写打老鼠这个类,就需要为当前的这个类定义一个命名空间,如上图的2;

3和4:类和实例

在C#的世界中,代码是以类为单位组织起来的,我们可以看到:

public partial class Form1 : Form

Form1就是一个类。关于一个类的最简单的形式如下:

class Mouse

{

}

至于打老鼠游戏中的Form1这个类声明当中的partial和后面的冒号后的内容,我们暂时可以不管它。

类和文件的关系?没有关系!当然,常用的做法是,一个类使用一个文件。

对类使用new关键字,就产生了类的一个实例,如:

Mouse aMouse = new Mouse();

5和10和11. 变量

在类以内,方法以外,没有修饰static的变量,为实例变量;

方法以内的变量,叫做局部变量;

变量在方法的声明内,叫做方法参数;

变量(或者说变量名),代表的就是某个你要操作的对象。

6和9. 方法

方法定义了类的行为,也就是类可以干什么。

有一类特殊的方法叫做构造器。它是在产生类的实例的时候首先被调用的。

7. 循环结构

foreach,for,while,都属于循环结构,光看代码,大家应该都能准确理解起意思,不在赘述。

8. 条件结构

If属于条件结构,很简单,不再赘述。

同属于条件结构的还有switch和三元运算符,等我们使用到的时候一并讲解,这里不再赘述。

微信扫一扫,关注最课程,获取每日一练

C#零基础入门03:打老鼠初级相关推荐

  1. 网络安全工程师零基础入门:(企业级)从入门到精通学习路线规划,学完即可就业

    前言 最近总能在网上看到很多诸如:"怎样成为网络信息安全工程师"等相关问题,这可能与近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,似乎网络信息安 ...

  2. 黑客零基础入门教程,从入门到精通学习路线规划,看完这篇就够了。

    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样. 想要成为黑客,却苦于没有方向,不知道从何学起 ...

  3. ppt如何替换其他mo ban_一键修改PPT字体、颜色的秘诀是……| PPT零基础入门04

    上一篇:拾余:高效使用PPT需要知道几个快捷键? | PPT零基础入门03 前言 为了帮助PPT新手,摆脱对软件学习的不知所措,顺利入门.于是有了这个系列的文章:PPT零基础入门. 我希望够尽可能细致 ...

  4. 神仙级黑客入门教程(非常详细),从零基础入门到精通,从看这篇开始

    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样. 想要成为黑客,却苦于没有方向,不知道从何学起 ...

  5. 初级软件测试工程师零基础入门指南

    初级软件测试工程师零基础入门指南 唐井军 编著 2012年10月 1.基本概念 1.1软件 软件就是可以在计算机上运行的计算机程序,如操作系统Windows.办公软件Office.聊天QQ.手机游戏等 ...

  6. 黑客技术零基础入门怎么学(黑客初级入门)

    本篇文章给大家谈谈黑客技术零基础入门怎么学,以及黑客初级入门对应的知识点,希望对各位有所帮助. 本文目录一览: 1.黑客零基础入门 2.怎样自学黑客技术? 3.学习黑客需要先学习什么基础?(零基础) ...

  7. 日语零基础入门至初级“三步走”

    被日本动漫.日剧深深迷住,但看见似熟非熟的汉字假名却无从下手?!没关系,沪江网校推出日语入门系列班级,要想日语零基础入门你只需要"三步走"!首先,我们来了解看看什么是"三 ...

  8. Datawhale 零基础入门数据挖掘心跳信号分类学习反馈03

    Detail 零基础入门数据挖掘 (心跳信号分类) 学习反馈TASK3 使用语言:python Tas1 – Task5 Task3_数据特征工程分析 主要是针对时间序列的心电图数据加上:特征time ...

  9. 基于实践的LabVIEW零基础入门视频教程

    原文地址::http://blog.eeecontrol.com/LabVIEW1/ <基于实践的LabVIEW零基础入门视频教程> 资料不在多,而在于精,资料太多,反而会迷失方向,学习最 ...

最新文章

  1. 启动tomcat时,一直卡在Deploying web application directory这块的解决方案
  2. 华为路由器的NAT配置
  3. 在Word中插入条形码又一法
  4. CSS clear 清除浮动,兼容各浏览器
  5. 矩阵的逆、伪逆、左右逆,最小二乘,投影矩阵
  6. 各浏览器对focusin/focusout事件的支持差异
  7. CSS 语言伪类选择器
  8. 软件测试管理是什么?
  9. [翻译]Scott Mitchell的ASP.NET2.0数据教程中文版索引(Canceled!!)
  10. latex longtable and supertabular 跨页表格
  11. docker CI部署样例
  12. 如何导出久其报表所有数据_久其报表软件基本操作流程..docx
  13. vscode下载与安装教程
  14. Python爬虫实战+数据分析+数据可视化(汽车之家)
  15. 激光SLAM框架总结
  16. opencv直方图,lomo,cartoon
  17. Centos校准时间
  18. 如何用美剧真正提升你的英语水平(转载)
  19. ID卡、IC卡,RFID卡,NFC卡的简单介绍
  20. 阿里云物联网平台搭建

热门文章

  1. linux如何查询某个关键字所处在哪个文件夹的哪个文件下
  2. Sality 病毒的驱动模块分析报告
  3. 通达信股票接口盘后数据下载流程是怎么样的?
  4. 工欲善其事,必利其器
  5. VTP(VLAN Trunking Protocol)
  6. golang 模拟M/M/s排队系统损失率,泊松分布到达,指数分布服务
  7. 抖音小音响抖王FJ-105W拆解
  8. 关于博弈论中的共同知识的一点理解
  9. Linux下运行War3(转)
  10. NTKO在线office控件使用实例