创建匹配游戏.doc_第1页
创建匹配游戏.doc_第2页
创建匹配游戏.doc_第3页
创建匹配游戏.doc_第4页
创建匹配游戏.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教程 4:创建匹配游戏Visual Studio 2012在本教程中,将生成一个匹配游戏,在该游戏中,玩家必须匹配隐藏的图标对。您将学习如何: 使用List对象来包含对象。 使用foreach循环(Visual C# 中)或For Each循环(Visual Basic 中)。 使用引用变量跟踪窗体的状态。 生成可用于多个对象的事件处理程序。 使计时器启动时正好激发一次。当您完成时,程序将类似下图所示。在本教程中创建的游戏说明在本教程中,同时涉及 Visual C# 和 Visual Basic,因此请关注特定于您使用的编程语言的信息。相关主题标题说明步骤 1:创建项目并向窗体添加表通过创建项目并添加TableLayoutPanel控件开始操作。步骤 2:添加随机对象和图标列表添加Random对象和List对象,以创建图标列表。步骤 3:向每个标签分配一个随机图标向Label控件随机分配图标。步骤 4:向每个标签添加一个 Click 事件处理程序添加一个 Click 事件处理程序,该处理程序更改被单击的标签的颜色。步骤 5:添加标签引用添加引用变量以跟踪哪些标签被单击。步骤 6:添加计时器向窗体添加计时器。步骤 7:保持对可见保持图标对可见(如果选择了匹配的对)。步骤 8:添加方法以验证玩家是否获胜添加CheckForWinner()方法以验证玩家是否获胜。步骤 9:尝试其他功能尝试其他功能,例如更改图标和颜色、添加网格以及添加声音。尝试使图板变大并调整计时器。社区附加资源添加基于sharepoint2010的方蝶工作流Foundare Workflow 2010(方蝶工作流)上海创件信息科技有限公司全球领先的流程管理解决方案的提供商步骤 1:创建项目并向窗体添加表创建匹配游戏的第一步是创建项目并向窗体添加表。创建项目并向窗体添加表1. 在“文件”菜单上,单击“新建项目”。2. 如果没有使用 Visual Studio 学习版,您需要先选择一种语言。从“安装的模板”列表中选择“C#”或“Visual Basic”。3. 单击“Windows 窗体应用程序”图标,然后键入“匹配游戏”作为名称。4. 设置窗体属性:a. 将窗体的“Text”属性更改为“匹配游戏”。b. 通过使用“Size”属性将大小更改为 550 像素宽、550 像素高,或者拖动直到您在集成开发环境 (IDE) 的左下角看到合适的大小。5. 将TableLayoutPanel控件从工具箱中拖出,然后设置其属性:a. 将“BackColor”属性设置为“CornflowerBlue”。(在颜色选取器中选择“Web”选项卡可以查看颜色名称。)b. 通过单击属性旁边的下拉按钮并单击大的中间按钮,将“Dock”属性设置为“Fill”。c. 单击 TableLayoutPanel 右上角的三角形按钮,以显示任务菜单。d. 单击“添加行”两次以多添加两行,然后单击“添加列”两次以再添加两列。e. 单击“编辑行和列”打开“列和行样式”窗口。选择每一列,单击“百分比”按钮并将每个列的宽度设置为总宽度的 25%。然后从窗口顶部的下拉框选择“行”,并将每个行的高度设置为 25%。单击“确定”按钮。TableLayoutPanel 现在应该有十六个相等大小的方块单元格。6. 确保在窗体编辑器中选择了该 TableLayoutPanel。选中后,打开工具箱,然后双击“Label”以将Label控件添加到左上方的方块中。现在,Label控件在 IDE 中应处于选中状态。设置其属性:a. 将“BackColor”属性设置为“CornflowerBlue”。b. 将“AutoSize”属性设置为“False”。c. 将“Dock”属性设置为“Fill”。d. 通过单击“TextAlign”属性旁的下拉按钮并单击中间的按钮,将该属性设置为“MiddleCenter”。e. 单击“Font”属性。应显示一个省略号按钮。f. 单击该省略号按钮,并将字体设置为“Webdings 72 point Bold”。g. 将“Text”属性设置为字母“c”。TableLayoutPanel 中的左上角单元格现在应包含一个在蓝色背景上居中的大黑色框。说明Webdings 字体是 Microsoft Windows 操作系统附带的图标字体。在匹配游戏中,玩家需要匹配图标对,因此您使用此字体显示要匹配的图标。不要在“Text”属性中输入“c”,请尝试输入其他字母以查看显示哪些图标。感叹号是一个蜘蛛,大写 N 是一个眼球,而逗号是一个辣椒。7. 选择Label控件并进行复制。(按 Ctrl+C,或从“编辑”菜单中单击“复制”。)然后粘贴。(按 Ctrl+V,或从“编辑”菜单中单击“粘贴”。)在 TableLayoutPanel 中的第二个单元格中出现另一个标签。再次粘贴它,在第三个单元格中会出现另一个标签。一直粘贴Label控件,直到填充完所有单元格。说明如果粘贴次数太多,IDE 会将一个新行添加到该 TableLayoutPanel,以便具有可添加新Label控件的位置。您可以撤消此操作。若要移除新单元格,请按 Ctrl+Z 或在“编辑”菜单上单击“撤消”。8. 现在,窗体布局已设置完毕。其外观类似于下图。9. 初始匹配游戏窗体10. 继续或查看 若要转到下一个教程步骤,请参见步骤 2:添加随机对象和图标列表。 若要返回概述主题,请参见教程 4:创建匹配游戏。社区附加资源添加步骤 2:添加随机对象和图标列表您需要使用两个new语句创建两个对象并将它们添加到您的窗体。第一个是Random对象,类似于数学测验游戏中使用的对象。第二个是一个新对象:List对象。添加随机对象和图标列表1. 在添加以下代码以创建列表之前,请考虑它的运行方式。C#VBpublic partial class Form1 : Form / Use this Random object to choose random icons for the squares Random random = new Random(); / Each of these letters is an interesting icon / in the Webdings font, / and each icon appears twice in this list List icons = new List() !, !, N, N, , , k, k, b, b, v, v, w, w, z, z ;2. 通过右击“解决方案资源管理器”中的“Form1.cs”,然后从菜单中单击“查看代码”,转到代码编辑器。开始键入上一步中所示的代码。如果编写 Visual C# 代码,请确保将代码放在左大括号后面,紧靠类声明 (public partial class Form1 : Form) 之后。如果编写 Visual Basic 代码,请将代码放在紧靠类声明 (Public Class Form1) 之后。3. 添加List对象时,请仔细查看打开的“IntelliSense”窗口。下面是一个 Visual C# 示例。(如果在 Visual Basic 中添加列表,会显示类似文本。)“IntelliSense”窗口说明如果您分小段查看代码,则理解会显得更简单。程序可以使用List对象跟踪多个项目。列表可以包含数字、true/false 值、文本或其他对象。您甚至可以有一个包含其他List对象的List对象。列表中的项目称为“元素”,每个列表只包含一种元素。所以数字列表只包含数字 - 您不能向其中添加文本。同样,您也不能向 true/false 值列表添加数字。说明当使用new语句创建List对象时,需要指示您希望在其中存放的内容。这就是“IntelliSense”窗口顶部工具提示显示列表中的元素类型的原因。同样,这也是List(Visual C# 中)和List(Of String)(Visual Basic 中)的含义:它是一个包含字符串的List对象。程序使用字符串来存储文本,该文本是“IntelliSense”窗口右侧的工具提示将告诉您的文本。4. 请考虑为什么在 Visual Basic 中必须首先创建临时数组,但在 Visual C# 中可以使用一条语句创建列表。这是因为 Visual C# 语言具有“集合初始值设定项”。在 Visual Basic 2010 中,可以使用集合初始值设定项。但是,为了与以前版本的 Visual Basic 兼容,我们建议您使用上面的代码。说明当您将集合初始值设定项与new语句一同使用时,在创建新的List对象后,程序将使用大括号内的任何内容填充它。在本例中,您获取名为“图标”的字符串列表,该列表将初始化以包含十六个字符串。其中每个字符串都是单个字母,它们都对应于将在标签中出现的图标。因此,游戏将具有一对感叹号、一对大写的 N 字母、一对逗号等。List对象将包含全部十六个字符串,每个对应于 TableLayoutPanel 中的一个单元格。说明在 Visual Basic 中,可以获得相同的结果,但是字符串首先放入临时数组中,该数组然后转换为List对象。数组类似于列表,但也有不同之处,例如数组在创建时具有固定大小。列表可以根据需要收缩或增长,这在此程序中非常重要。继续或查看 若要转到下一个教程步骤,请参见步骤 3:向每个标签分配一个随机图标。 若要返回上一个教程步骤,请参见步骤 1:创建项目并向窗体添加表。社区附加资源添加步骤 3:向每个标签分配一个随机图标Visual Studio 2012其他版本此主题尚未评级-评价此主题如果游戏始终将同一图标隐藏在相同的位置,这就没有挑战性了。您需要向窗体中的Label控件随机分配图标。为此,需要添加AssignIconsToSquares()方法。向每个标签分配一个随机图标1. 在添加以下代码之前,请考虑该方法的工作原理。有一个新的关键字:foreach(Visual C# 中)或For Each(Visual Basic 中)。(其中有一行被故意注释掉,本过程的结尾对此进行了解释)。C#VB/ / Assign each icon from the list of icons to a random square/ private void AssignIconsToSquares() / The TableLayoutPanel has 16 labels, / and the icon list has 16 icons, / so an icon is pulled at random from the list / and added to each label foreach (Control control in tableLayoutPanel1.Controls) Label iconLabel = control as Label; if (iconLabel != null) int randomNumber = random.Next(icons.Count); iconLabel.Text = iconsrandomNumber; / iconLabel.ForeColor = iconLabel.BackColor; icons.RemoveAt(randomNumber); 2. 按上一步骤所示,添加AssignIconsToSquares()方法。可以将它放在紧靠步骤 2:添加随机对象和图标列表中添加的代码的下方。在AssignIconsToSquares()方法中有一个新增功能:foreach循环(在 Visual C# 中)或For Each(在 Visual Basic 中)。无论何时想要重复执行相同操作,您都可以使用For Each循环。在本例中,您要对 TableLayoutPanel 中的每个标签执行相同的语句,下面的代码对此进行了解释。第一行创建存储每个控件一次一个名为control的一个变量,则该控件使用语句在此期间执行的循环。C#VBforeach (Control control in tableLayoutPanel1.Controls) / The statements you want to execute / for each label go here / The statements use iconLabel to access / each labels properties and methods说明其中使用了名称 iconLabel 和控件,因为它们具有描述性。可以将这些名称替换为任何名称,其作用完全相同,只要您更改了每个语句中的名称在循环内。AssignIconsToSquares()方法遍历 TableLayoutPanel 中的每个Label控件,并对每个控件执行相同的语句。这些语句从您在步骤 2:添加随机对象和图标列表中添加的列表提取随机图标。(这就是该列表中每个图标都有两个的原因,因此将向随机Label控件分配一对图标。)仔细查看运行在foreach或For Each循环内的代码。此代码中重现此处。C#VBLabel iconLabel = control as Label;if (iconLabel != null) int randomNumber = random.Next(icons.Count); iconLabel.Text = iconsrandomNumber; / iconLabel.ForeColor = iconLabel.BackColor; icons.RemoveAt(randomNumber);第一行转换control变量转换为名为iconLabel的Label。是if语句检查以确定转换的行后工作。如果转换工作,在运行的if条语句。在if语句的第一行创建包含一个随机数分别对应于一个在图标的项列表randomNumber名为的变量。为此,它使用先前创建Random对象的Next方法。Next方法返回随机数。此行也使用icons的Count属性列表来选择随机数的大小。下一行分配图标列表项到标签的Text属性。注释行在本主题的后面部分将。最后,在if语句的最后一行从列表中移除已添加到窗体的图标。确保,因此,如果您为任何不确定的代码的某些部分执行,可以停留在代码元素的鼠标指针和检查发生的工具提示。3. 一旦程序启动,您就需要调用AssignIconsToSquares()方法。如果编写 Visual C# 代码,则在Form1构造函数中紧靠对InitializeComponent()方法的调用下方添加一条语句,这样窗体便可以调用新方法以在显示之前对自身进行设置。C#public Form1() InitializeComponent(); AssignIconsToSquares();对于 Visual Basic,首先添加该构造函数,然后添加对该构造函数的方法调用。在刚创建的AssignIconsToSquares()方法之前,首先请键入代码Public Sub New()。当您按 Enter 键移动到下一行时,IntelliSense 应显示下面的代码来完成该构造函数。VBPublic Sub New() This call is required by Windows Form Designer InitializeComponent() Add any initialization after the InitializeComponent() callEnd Sub添加AssignIconsToSquares()方法调用以使构造函数如下所示。VBPublic Sub New() This call is required by Windows Form Designer InitializeComponent() Add any initialization after the InitializeComponent() call AssignIconsToSquares()End Sub4. 保存并运行程序。它应该显示一个窗体,其中每个标签都分配了随机图标。5. 关闭程序,然后重新运行。现在每个标签都分配了不同的图标,如下图所示。具有随机图标的匹配游戏6. 现在停止该程序,并在For Each循环中取消注释该代码行。C#VBiconLabel.ForeColor = iconLabel.BackColor;7. 单击“全部保存”工具栏按钮保存您的程序,然后运行该程序。图标看起来消失了 - 只显示蓝色背景。但是,图标是随机分配的,仍然存在。因为图标与背景颜色相同,所以它们不可见。继续或查看 若要转到下一个教程步骤,请参见步骤 4:向每个标签添加一个 Click 事件处理程序。 若要返回上一个教程步骤,请参见步骤 2:添加随机对象和图标列表。步骤 4:向每个标签添加一个 Click 事件处理程序匹配游戏的运行原理如下所示:1. 当玩家单击其中一个带有隐藏图标的方块时,程序通过将图标颜色更改为黑色来向玩家显示该图标。2. 然后玩家单击另一个隐藏的图标。3. 如果图标互相匹配,则它们保持可见。如果不匹配,则两个图标都会再次隐藏。为了使程序按此方式运行,您需要添加一个 Click 事件处理程序以更改所单击的标签的颜色。向每个标签添加一个 Click 事件处理程序1. 转到 Windows 窗体设计器,然后单击第一个Label控件以将其选中。然后,在单击其他每个标签时按住 Ctrl 键,以将它们选中。确保选中每个标签。2. 然后,转到“属性”窗口中的“事件”页。向下滚动到 Click 事件,在框中键入“label_Click”,如下图所示。显示 Click 事件的“属性”窗口3. 按 Enter。IDE 将称为label_Click()的 Click 事件处理程序添加到代码中,并将其挂钩到每个标签。4. 填写其余代码,如下所示:C#VB/ / Every labels Click event is handled by this event handler/ / The label that was clicked/ private void label_Click(object sender, EventArgs e) Label clickedLabel = sender as Label; if (clickedLabel != null) / If the clicked label is black, the player clicked / an icon thats already been revealed - / ignore the click if (clickedLabel.ForeColor = Color.Black) return; clickedLabel.ForeColor = Color.Black; 说明您可以从“创建数学测验”教程识别事件处理程序顶部的object sender。您将不同的Label控件 Click 事件与单个事件处理程序方法挂钩,因此无论用户单击哪个标签,都调用同一方法。该方法需要知道单击了哪个标签,因此它使用该Label控件的名称“发送方”。该方法的第一行告诉程序,它并不只是一个对象,而是专门的Label控件,它使用名称“clickedLabel”访问其属性和方法。该方法首先检查是否已将“clickedLabel”成功从对象转换(强制转换)为 Label 控件。如果不成功,它具有一个 null 值 (C#) 或 Nothing 值 (Visual Basic),您不需要执行该方法中的其余代码。接下来,该方法使用“ForeColor”属性检查被单击的标签的文本颜色。如果已经为黑色,则该图标已被单击,因此该方法完成。(这就是返回语句的作用:它告诉程序停止执行该方法。)如果该图标尚未被单击,它会将其文本颜色更改为黑色。5. 保存并运行程序。您应该看到一个背景为蓝色的空窗体。在窗体中单击,其中一个图标应变为可见。继续在窗体中的不同位置单击。当单击图标时,它们应显示。继续或查看 若要转到下一个教程步骤,请参见步骤 5:添加标签引用。 若要返回上一个教程步骤,请参见步骤 3:向每个标签分配一个随机图标。步骤 5:添加标签引用此主题尚未评级-评价此主题程序需要跟踪玩家单击了哪些Label控件。在第一个标签被单击后,程序显示该标签的图标。在第二个标签被单击后,程序需要同时显示两个图标很短的时间,然后再次使这两个图标不可见。程序将使用引用变量跟踪第一次和第二次分别单击了哪个Label控件。添加标签引用1. 通过使用下面的代码向窗体中添加标签引用。C#VBpublic partial class Form1 : Form / firstClicked points to the first Label control / that the player clicks, but it will be null / if the player hasnt clicked a label yet Label firstClicked = null; / secondClicked points to the second Label control / that the player clicks Label secondClicked = null;说明引用变量看上去类似于用来向窗体添加对象(如Timer对象、List对象和Random对象)的语句。但是,这些语句不会导致窗体中显示两个额外的Label控件,因为这两个语句中没有任何一个语句具有new。而没有new就不能创建对象。这就是将firstClicked和secondClicked称为引用变量的原因:它们只跟踪(或引用)Label对象。说明当某变量不跟踪对象时,它设置为特殊的值:null(Visual C# 中)或Nothing(Visual Basic 中)。因此,当程序启动时,firstClicked和secondClicked都设置为null或Nothing,这意味着该变量不会跟踪任何内容。2. 修改 Click 事件处理程序,以使用新的firstClicked引用变量。移除label_Click()事件处理程序方法中的最后一个语句 (clickedLabel.ForeColor = Color.Black;),并将它替换为下面的if语句。(确保包含注释和整个if语句)。C#VB/ / Every labels Click event is handled by this event handler/ / The label that was clicked/ private void label_Click(object sender, EventArgs e) Label clickedLabel = sender as Label; if (clickedLabel != null) / If the clicked label is black, the player clicked / an icon thats already been revealed - / ignore the click if (clickedLabel.ForeColor = Color.Black) return; / If firstClicked is null, this is the first icon / in the pair that the player clicked, / so set firstClicked to the label that the player / clicked, change its color to black, and return if (firstClicked = null) firstClicked = clickedLabel; firstClicked.ForeColor = Color.Black; return; 3. 保存并运行程序。单击其中一个Label控件,它的图标将出现。4. 单击下一个Label控件,并注意是否没有任何反应。程序已跟踪玩家单击的第一个标签,因此firstClicked不等于 Visual C# 中的null或 Visual Basic 中的Nothing。当if语句检查firstClicked以确定它是否等于null或Nothing时,它发现它不等于,因而不会在if语句中执行语句。因此,只有被单击的第一个图标变为黑色,其他图标是不可见的,如下图所示。显示一个图标的匹配游戏继续或查看 若要转到下一个教程步骤,请参见步骤 6:添加计时器。 若要返回上一个教程步骤,请参见步骤 4:向每个标签添加一个 Click 事件处理程序。社区附加资源添加基于sharepoint2010的方蝶工作流步骤 6:添加计时器Visual Studio 2012其他版本接下来,您要向匹配游戏中添加计时器。添加计时器1. 转到 Windows 窗体设计器中的工具箱。双击“Timer”(在“组件”类别中)并向窗体添加计时器,其图标出现在窗体下方的灰框中,如下图所示。Timer2. 单击“timer1”图标以选择计时器。将“Interval”属性设置为 750,但将“Enabled”属性保留设置为“False”。“Interval”属性通知计时器在计时周期之间等待的时间长度,因此,该属性通知计时器在触发第一个 Tick 事件之前等待四分之三秒(750 毫秒)。您不希望计时器在程序启动时启动。而是在玩家单击第二个标签时使用Start()方法启动计时器。3. 双击 Windows 窗体设计器中的Timer控件图标以添加 Tick 事件处理程序,如下面的代码所示。C#VB/ / This timer is started when the player clicks / two icons that dont match,/ so it counts three quarters of a second / and then turns itself off and hides both icons/ / / private void timer1_Tick(object sender, EventArgs e) / Stop the timer timer1.Stop(); / Hide both icons firstClicked.ForeColor = firstClicked.BackColor; secondClicked.ForeColor = secondClicked.BackColor; / Reset firstClicked and secondClicked / so the next time a label is / clicked, the program knows its the first click firstClicked = null; secondClicked = null;Tick 事件处理程序执行三个操作:首先,通过调用Stop()方法停止计时器。然后,它使用两个引用变量firstClicked和secondClicked来捕获玩家单击的两个标签,并再次使其图标不可见。最后,它将firstClicked和secondClicked引用变量重置为null(Visual C# 中)或Nothing(Visual Basic 中)。这一点很重要,因为这是该程序重置本身的方式。现在,它不跟踪任何Label控件,并已准备好再次捕获玩家的第一次单击。说明Timer对象具有Start()方法和Stop()方法,分别用以启动和停止计时器。如果您在“属性”窗口中将计时器的“Enabled”属性设置为“True”,则只要程序开始运行,计时器就会开始计时。但是,如果将该属性保留设置为“False”,则在调用计时器的Start()方法之前,计时器不会开始计时。说明通常,计时器会使用“Interval”属性确定要在计时周期之间等待的毫秒数,从而反复触发其 Tick 事件。您可能已经注意到在 Tick 事件中调用计时器的Stop()方法的方式。它会将计时器置于“单触发模式”,这样,当调用Start()方法时,它会等待间隔的时间长度并触发单一 Tick 事件。4. 若要查看正在使用的新计时器,请转至代码编辑器,将以下代码添加到label_Click()事件处理程序方法的顶部和底部。(您要将if语句添加到顶部,将三个语句添加到底部;该方法的其余部分保持相同。)C#VB/ / Every labels Click event is handled by this event handler/ / The label that was clicked/ private void label_Click(object sender, EventArgs e) / The timer is only on after two non-matching / icons have been shown to the player, / so ignore any clicks if the timer is running if (timer1.Enabled = true) return; Label clickedLabel = sender as Label; if (clickedLabel != null) / If the clicked label is black, the player clicked / an icon thats already been revealed - / ignore the click if (clickedLabel.ForeColor = Color.Black) return; / If firstClicked is null, this is the first icon / in the pair that the player clicked, / so set firstClicked to the label that the player / clicked, change its color to black, and return if (firstClicked = null) firstClicked = clickedLabel; firstClicked.ForeColor = Color.Black; return; / If the player gets this far, the timer isnt / running and firstClicked isnt null, / so this must be the second icon the player clicked / Set its color to black secondClicked = clickedLabel; secondClicked.ForeColor = Color.Black; / If the player gets this far, the player / clicked two different icons, so start the / timer (which will wait three quarters of / a second, and then hide the icons) timer1.Start(); 该方法顶部的代码通过检查“Enabled”属性来检查计时器是否已启动。这样,如果玩家单击第一个和第二个Label控件,且计时器启动,则单击第三个控件将不会执行任何操作。该方法底部的代码设置secondClicked引用变量,以便它跟踪玩家单击的第二个Label控件,它将该标签的图标颜色设置为黑色以使其可见。然后,它在单触发模式下启动计时器,以便它等待 750 毫秒,然后触发 Tick 事件。然后,计时器的 Tick 事件处理程序会隐藏这两个图标,并重置firstClicked和secondClicked引用变量,以便窗体准备就绪以供玩家单击另一个图标。5. 保存并运行程序。单击一个图标,它将变得可见。6. 单击另一个图标。它会短暂显示,然后两个图标都消失。多次重复此操作。窗体现在跟踪您单击的第一个和第二个图标,并在使图标消失之前使用计时器暂停。继续或查看 若要转到下一个教程步骤,请参见步骤 7:保持对可见。 若要返回上一个教程步骤,请参见步骤 5:添加标签引用。步骤 7:保持对可见Visual Studio 2012其他版本此主题尚未评级-评价此主题只要玩家仅单击不匹配的图标对,游戏即可顺畅地运行。但是,请考虑玩家单击匹配对时应发生的情况。游戏不是通过打开计时器(使用Start()方法)来使图标消失,而应当进行重置,这样游戏就不再使用firstClicked和secondClicked引用变量跟踪任何标签,而且无需重置两个已单击过的标签的颜色。保持对可见1. 将下面的if语句添加到label_Click()事件处理程序方法的尾部附近,紧靠启动计时器的语句的上方。将代码添加到程序时,请仔细查看一下代码。考虑代码如何运行。C#VB / If the player gets this far, the timer isnt / running and firstClicked isnt null, / so this must be the second icon the player clicked / Set its color to black secondClicked = clickedLabel; secondClicked.ForeColor = Color.Black; / If the player clicked two matching icons, keep them / black and reset firstClicked and secondClicked / so the player can click another icon if (firstClicked.Text = secondClicked.Text) firstClicked = null; secondClicked = null; return; / If the player gets this far, the player / clicked two different icons, so start the / timer (which will wait three quarters of / a second, and then hide the icons) timer1.Start(); 您刚添加的if语句的第一行检查玩家单击的第一个标签中的图标是否与第二个标签中的图标相同。如果图标相同,则程序执行 C# 中大括号之间的三个语句或 Visual Basic 中if语句内的三个语句。前两个语句重置firstClicked和secondClicked引用变量,使它们不跟踪任何标签。(您可以从计时器的 Tick 事件处理程序识别这两个语句。)第三个语句是返回语句,它通知程序跳过方法中的其余语句,不执行它们。如果使用 Visual C# 编程,您可能已注意到某些代码使用单个等号 (=),而其他语句使用双等号 (=)。请考虑为什么在某些位置使用=,但在其他位置使用=。以下是一个显示该区别的很好的示例。请仔细查看if语句括号之间的代码。VBfirstClicked.Text = secondClicked.TextC#firstClicked.Text = secondClicked.Text再仔细查看if语句后的代码块中的第一个语句。VBfirstClicked = NothingC#firstClicked = null;这两个语句中的第一句检查两个图标是否相同。因为要比较两个值,所以 Visual C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论