基于APP Inventor2的“猫鼠大战”游戏开发_第1页
基于APP Inventor2的“猫鼠大战”游戏开发_第2页
基于APP Inventor2的“猫鼠大战”游戏开发_第3页
基于APP Inventor2的“猫鼠大战”游戏开发_第4页
基于APP Inventor2的“猫鼠大战”游戏开发_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

基于APPInventor2的“猫鼠大战”游戏开发I基于APPInventor2的“猫鼠大战”游戏开发摘要如今,随着互联网与智能手机的普及,花样繁多的应用软件出现在人们面前,其中移动端的游戏开发异常火爆。同时也带来了各式各样的应用开发软件:AndroidStudio、eclipse、APPInventor等等。本文主要研究并使用APPInventor2软件,设计和开发“猫鼠大战”游戏。APPInventor2是一款采用拖曳操作的可视化编程工具,其核心是模块化编程。本文将提出应用APPInventor开发的意义,以及猫鼠大战游戏的规则,从准备工作开始论述,详细介绍开发过程。本次设计作品依据“斗兽棋”中猫可以吃老鼠、狗可以吃猫的规则进行设计。最终功能如下:采用第一人称视角,玩家扮演游戏中的猫,通过控制设备的倾斜幅度来控制角色的移动。猫追逐并吃掉随机移动的老鼠,猫的生命值会增加,游戏继续;猫如果被狗抓住,猫的生命值为0,游戏结束;猫在时限内如果没有吃掉老鼠,猫的生命值会逐渐减少直至为0,游戏结束。关键词:APPInventor2;编程;可视化;模块化;随机IIAbstractNowadays,withthepopularityoftheInternetandsmartphones,avarietyofapplicationsoftwareappearsinfrontofpeople,amongwhichmobilegamedevelopmentisextremelypopular.Atthesametime,avarietyofapplicationdevelopmentsoftwarehasalsobeenbrought:AndroidStudio,eclipse,APPInventorandmore.ThisarticlemainlyresearchesandusesAPPInventor2softwaretodesignanddevelopa"catandmousewar"game.APPInventor2isavisualprogrammingtoolthatusesdraganddropoperations,anditscoreismodularprogramming.ThisarticlewillpresentthesignificanceoftheapplicationofAPPInventordevelopment,andTherulesofthecatandmousewargamearediscussedfromthepreparationworkandthedevelopmentprocessisintroducedindetail.Thisdesignworkisbasedontherulethatcatscaneatmiceanddogscaneatcatsin"combatchess".Thefinalfunctionisasfollows:usingthefirstpersonFromtheperspective,theplayerplaysthecatinthegameandcontrolsthemovementofthecharacterbycontrollingthetiltofthedevice.Thecatchasesandeatsrandomlymovingmice,thecat'shealthwillincrease,andthegamecontinues;ifthecatiscaughtbythedog,thecat'sThehealthvalueis0andthegameends;ifthecatdoesnoteatthemousewithinthetimelimit,thecat'shealthvaluewillgraduallydecreaseto0andthegamewillend.Keywords:APPInventor2;programming;visualization;modularization;randomIV目录摘要 IAbstract II目录 III第一章 绪论 11.1APPInventor简介[1]-[4] 11.2应用APPInventor开发项目的及意义[5]-[7] 11.3项目简介 2第二章项目需求分析以及总体设计 32.1需求分析 32.1.1开发软件界面分析 32.1.2项目所需可视组件分析 32.1.3项目所需非可视组件分析 32.1.4项目行为分析 32.2项目总体设计 42.2.1业务需求 42.2.2碰撞检测 42.2.3功能拓展 4第三章项目实现步骤 53.1准备工作 53.2“猫鼠大战”游戏中的所有组件 53.3实现猫的移动 53.3.1组件放置 53.3.2编程过程 63.3.3编程截图 63.4实时显示猫的生命值 73.4.1组件放置 73.4.2编程过程 73.4.3编程截图 83.5游戏结束的条件及猫的生命值递减 93.5.1编程过程 93.5.2编程截图 103.5.3小结 103.6实现老鼠的移动 113.6.1组件放置 113.6.2编程过程 113.6.3块的作用 113.6.4编程截图 123.7猫与鼠之间的碰撞检测 123.7.1编程过程 123.7.2编程截图 143.8实现鼠的“复活” 143.8.1编程过程 143.8.2编程截图 153.9实现重新开始 153.9.1组件放置 153.9.2编程过程 153.9.3编程截图 163.10实现狗的移动 163.8.1组件放置 163.8.2编程过程 163.8.3编程截图 173.11猫与鼠之间的碰撞检测及猫的“复活” 183.11.1编程过程 183.11.2编程截图 193.12添加音效 193.12.1编程过程 193.12.2编程截图 203.13实现关卡转换 203.13.1组件放置 203.13.2编程过程 203.13.3编程截图 213.14完整编程截图 223.15软件测试方法[8] 223.16软件运行截图 23结语 24致谢 25参考文献 261绪论随着信息时代的发展,软件编程逐渐进入大众视野,各式各样的编程软件遍地开花。利用编程软件,我们可以开发出各种APP,以满足我们的日常需求。但是,大部分编程软件是需要代码的积累才能够编写出合格的程序。这无形中提高了门槛,让许多有编程兴趣但没系统学习过编程的人望而却步。随着“APPInventor”编程软件的出现,我们迎来了全民编程时代。1.1APPInventor简介[1]-[4]Google推出的基于Android平台的AppInventor2手机应用开发软件。其图化的界面设计,人性化的搭积木式程序编码,在线式网页云开发,为全民编程带来了一丝契机,只有你富有创意,你即可随时随地编写自己的应用。[1]开发过程中不需要使用Java的虚拟机,图形化积木式的拖放组件以此实现Andriod应用的开发。AppInventor相比其他开发方式,有很多优点,例如,AppInventor进行编程时,对开发环境要求简单,开发过程具有可视化属性,组件应用模块化,调试运行同步化等优点,这样的属性大大降低了开发的难度,提高了开发的效率。并且项目中的所有信息都保存在网络服务器上,不用在本地电脑上保存任何信息。[2]-[3]同时其内置的传感器组件非常丰富:计时器、计步器、方向传感器、温湿度传感器等等。方向传感又称加速度传感器,是一种能够测量加速度的传感器,传感器通过对质量块所受惯性力来测量加速度。[4]其主要用于构建运行在安卓平台上的移动应用。1.2应用APPInventor开发项目的及意义[5]-[7]随着移动终端通信技术和网络技术的不断发展与进步,手机上的各种益智类小游戏也层出不穷,成为人们茶余饭后娱乐的一部分。[5]使用APPInventor开发软件旨在提高抽象、系统、算法、创新等计算思维。[6]计算思维可以帮助提高学生利用计算机及算法解决实际问题的能力,让编程者形成一种思维方式,而这种思维方式正是信息智能化时代所需的技能。APPInventor的使用极大提高了2编程者的学习兴趣,促使其由被动转为主动学习,让其可以轻松实现自己的创意,实时的终端测试让使用者获得卓越的成就感,让其的计算思维得到训练和运用。[7]1.3项目简介使用APPInentor2WxBit汉化增强版(/)进行编程设计。设计作品依据“斗兽棋”中猫可以吃老鼠、狗可以吃猫的规则进行设计。最终功能如下:采用第一人称视角,玩家扮演游戏中的猫,通过方向传感器检测19设备的倾斜幅度来控制角色的移动。猫追逐并吃掉老鼠时,猫发出叫声以及设备振动,猫的生命值会增加50,游戏继续;猫如果被狗抓住,狗发出叫声,猫的生命值为0,游戏结束;猫在时限内如果没有吃掉老鼠,猫的生命值会逐渐减少直至为0,游戏结束。点击“重新开始”按钮时,游戏重新启动。游戏每隔三十秒钟,进入下一关,目前只设计三关。每一关都比前一关难度要大,具体体现在:第二关较第一关老鼠速度变快;第三关较第二关狗的速度变快。在任何一关角色死去,点击重新开始,则从第一关开始。3第二章项目需求分析以及总体设计2.1需求分析2.1.1开发软件界面分析整个APPInentor2可划分为两个界面:设计视图和编程视图。1、设计视图:组件的放置与组件属性设置在此界面完成。2、编程视图:给组件设置行为。2.1.2项目所需可视组件分析1、画布:设定活动区域以及显示生命值。2、精灵:充当可移动的角色。3、按钮:需要重新开始时,点击该按钮。4、文本输入框:显示目前关卡数。2.1.3项目所需非可视组件分析1、方向传感器:用于控制用户角色的移动。2、计时器:每个周期精灵发生一次变化;进入下一关的条件。3、音频播放器:当完成某个特点的行为时,发出音效。2.1.4项目行为分析 1、用户控制角色:能够实现用户控制,依照用户要求移动。2、电脑角色1:躲避用户控制角色。3、电脑角色2:追逐用户控制角色。42.2项目总体设计2.2.1业务需求用户控制角色“猫”,其余两个电脑角色分别为“鼠”和“狗”。首先,猫能够随着手机的倾覆程度实现在活动区域的自由移动。其次,鼠能够在随机时间里出现在随机位置。最后,狗能根据猫的位置逐步向猫移动。2.2.2碰撞检测猫碰到鼠时,猫的生命值增加,鼠消失一段时间后出现在任意位置。狗碰到猫时,猫生命值为零,游戏结束。狗碰到鼠时,无任何行为。2.2.3功能拓展猫碰到鼠时,设备振动以及播放猫的叫声。狗碰到猫时,设备播放狗的叫声。程序每运行三十秒,自动进入下一关卡。猫的基本功能猫的基本功能鼠的基本功能狗的基本功能随机时间随机移动随着设备倾斜程度移动朝着猫的方向移动猫碰到老鼠游戏继续狗碰到猫,游戏结束图2.1总体流程框架5第三章项目实现步骤3.1准备工作首先,去站长素材网(/)搜集老鼠的图标(mouse.png)、猫的图标(cat.png)、狗的图标(dog.png)以及炸弹的图标(用于代替猫被狗吃后的图标)(dead_cat.png)。其次,寻找一张自己喜欢的图片作为游戏界面的背景图。最后,去大头网(/)下载狗的叫声(dog.wav)以及猫的叫声(cat.wav)。3.2“猫鼠大战”游戏中的所有组件表3-1所有组件集合组件类型所属类别名称作用画布绘制动画竞技场精灵组件的活动区域画布绘制动画血池显示猫的生命值精灵绘制动画猫用户扮演的角色精灵绘制动画老鼠猫的猎物精灵绘制动画狗猫的捕食者方向传感器传感器方向传感器1侦测设备的倾斜幅度控制猫的移动计时器传感器计时器1设定精灵状态的变化频率按钮用户界面重新开始重新开始游戏音效播放器多媒体音效播放器1当狗吃掉猫时发出犬吠音效播放器多媒体音效播放器2当猫吃掉鼠时发出猫叫3.3实现猫的移动3.3.1组件放置在设计视图中创建一个画布,重命名为竞技场,设置宽度为“充满”,高度6为300像素。在竞技场上放置一个精灵,重命名为猫,上传猫的图片(cat.png)至图片属性;同时设置其间隔为10毫秒;方向保持默认值0;速度在编程视图中设置具体的速度。添加方向传感器组件。添加计时器组件,设置其间隔为10毫秒。将Screen1的屏幕方向属性设置为竖屏。3.3.2编程过程在编程视图中,创建名为移动猫的过程:在编程视图中的过程内置块中拖出“定义过程xx执行xx”的代码,将过程名改为移动猫。在猫的模块中拖出“设置猫.方向为xx”和“设置猫.速度为xx”的代码,拼接在定义过程移动猫的代码之中。在方向传感器1中的模块拖出“方向传感器1的角度”和“方向传感器1的幅度”代码,分别拼接在“设置猫.方向为xx”和“设置猫.速度为xx”的代码之后。为了调节角色的速度大小,我们需要为“方向传感器1的幅度”x100,从数字内置块中拖出“AAxBB”的代码,拼接在“设置猫的速度为xx”的代码之后,再将“方向传感器的幅度”代码放置至第一个空格中,再由数学内置块拖出一个表示值的代码,内容改为100放入第二个空格中。如图3-1所示。幅度乘以100的含义是:猫每隔10毫秒,沿着一个方向,移动一定的距离。在计时器1模块中拖出“当计时器1到计时间隔点,执行xx”的代码。在过程内置块中拖出“调用xx”的代码,将内容选择为移动猫,拼接至“当计时器1到计时间隔点,执行xx”的代码之下。如图3-2所示。3.3.3编程截图7图3-1定义过程“移动猫”图3-2添加计时器3.4实时显示猫的生命值3.4.1组件放置在设计视图中,创建一个位于竞技场下方的画布组件,命名为“血池”,设置其宽度属性为“充满”,其高度属性为2像素。3.4.2编程过程在编程视图中,创建名为生命值的全局变量:从变量内置块拖出“创建全局变量xx为”的代码,将变量名改为生命值。再由数学内置块拖出一个表示值的代码,内容改为200,并拼接在“创建全局变量生命值为”的代码之后。如图3-3所示。在过程内置块中,拖出“定义过程xx执行”的代码,将过程名改为绘制线条。点击过程快左上角的蓝色方块,打开添加参数的面板,将参数x拖入右边的输入项块中将x修改为“长度”。重复之前的步骤,拖入第二个参数x块,放在“长度”参数之下,重命名为“颜色”。在血池模块中,拖出“设置血池.画笔颜色为”的代码块,拼接在“定义过程绘制线条”的代码块下方。并将鼠标悬停在“定义过程绘制线条”代码块右侧的“颜色”变量上,拖出单独的“颜色”代码7块,拼接在“设置血池.画笔颜色为”的代码块后面。在血池模块中,拖出“调用xx.画线”的代码块,拼接在“设置血池.画笔颜色为”的代码块之下。从数学内置块拖出三个表示值的代码,分别拼接在“第一点x坐标”、“第一点y坐标”、“第二点y坐标”之后,并将数值都改为0,将鼠标悬停在“定义过程绘制线条”代码块右侧的“长度”变量上,拖出单独的“长度”代码块,拼接在“第二点x坐标”的代码块后面。如图3-4所示。在过程内置块中,拖出“定义过程xx执行”的代码,将过程名改为显示生8命值。在过程内置块拖出“调用xx长度.颜色”将过程名改为绘制线条。再从血池模块拖出“血池.宽度”的代码块,拼接在“调用绘制线条.长度”代码之后。从颜色内置块中拖出白色代码块拼接在“调用绘制线条.颜色”代码之后。再从过程内置块拖出一个“调用xx长度.颜色”将过程名改为绘制线条,拼接在第一个调用绘制线条的代码之下,再将鼠标悬停在“创建全局变量生命值”的代码之上,拖出“全局变量生命值”代码块,(如图3-5所示),拼接在第二个“调用绘制线条.长度”之后,从颜色内置块中拖出红色代码块拼接在第二次“调用绘制线条.颜色”代码之后。如图3-6所示。3.4.3编程截图图3-3创建全局变量图3-4定义过程“绘制线条”图3-5鼠标悬停后出现的代码块9图3-6定义过程“显示生命值”3.5游戏结束的条件及猫的生命值递减3.5.1编程过程在编程视图中,创建名为游戏结束的过程:在编程视图中的过程内置块中拖出“定义过程xx执行xx”的代码,将过程名改为游戏结束。在猫模块中拖出“设置猫.是否启用为xx”的代码,拼接在“定义过程游戏结束执行”的代码之下。由逻辑内置块拖出“假”的代码块拼接在“设置猫.是否启用为xx”的代码之后。在猫模块中拖出“设置猫.图片为xx”的代码拼接在“设置猫.是否启用为xx”的代码之下。从文本内置块中拖出只有两个引号的代码,拼接在“设置猫.图片为xx”的代码之后,并将内容改为猫被狗抓到后的图片:dead_cat.png。如图3-7所示。将鼠标悬停在“创建全局变量生命值”代码块中的变量名上,拖出“设置全局变量生命值为xx”的代码,拼接在“定义过程移动猫”的代码之下,从数字内置块中拖出“xx-xx”的代码,拼接在“设置全局变量生命值为xx”的代码之后,鼠标悬停在“创建全局变量生命值”代码块中的变量名上,拖出“全局变量生命值”的代码,放入减运算的第一个框内,从数学内置块拖出一个表示值的代12码,将值改为1,放入减运算的第二个框内。从过程内置块拖出“调用显示生命值”代码,拼接在上一步的下方。从控制内置块中拖出“如果xx则xx”的代码,拼接在“调用显示生命值”代码下方。从数学内置块中拖出“xx=xx”的代码,拼接在“如果xx则xx”代码的如果判断条件之后。鼠标悬停在“创建全10局变量生命值”代码块中的变量名上,拖出“全局变量生命值”的代码,放入“=”的左边。从数学内置块拖出一个表示值的代码,将值改为1,放入“=”右边。在过程内置块拖出“调用游戏结束”代码拼接在“如果xx则xx”代码的则判断条件之后。如图3-8所示。3.5.2编程截图图3-7定义过程“游戏结束”图3-8移动猫过程的完善3.5.3小结至此,“猫鼠大战”开发中猫的部分已经完成基本框架,同时也实现了生命值显示的过程:猫的生命值递减(逐渐减1);显示新的生命值(调用显示生命值过程);如果生命值为0,则调用游戏结束过程。113.6实现老鼠的移动3.6.1组件放置在设计视图中,放置一个精灵,重命名为老鼠,上传老鼠的图片(mouse.png)至图片属性;同时设置其间隔为10毫秒;方向保持默认值0;速度设置为2,以便让猫能够捕捉到它。3.6.2编程过程在编程视图中,从过程内置块拖出“定义过程xx执行xx”的代码,将过程名改为移动老鼠。下面我们利用随机小数创建老鼠移动过程(也可以通过添加第二个计时器组件来实现):从控制内置块中,拖出“如果xx则xx”的代码块,在数学内置块中拖出“xx<xx”的代码块,拼接在如果的后面,从数学内置块中拖出“随机小数”代码块放入“<”左边,以同样的方法拖出一个表示值的代码,将值改为0.2,放入“<”右边。在老鼠模块中拖出“设老鼠的方向为xx”的代码块,拼接在则之后,从数学内置块中拖出“从xx到xx之间的随机小数”代码块,拼接在“设老鼠的方向为xx”的代码块之后,并将数值分别改为“0”和“360”。如图3-9所示。在过程内置块中拖出“调用移动老鼠”的代码块,拼接在“当计时器1到达计时点则xx”的代码块之下,并排列在“调用移动猫”的下方。如图3-10所示。3.6.3块的作用计时器每发生一次计时事件都会调用移动猫和移动老鼠的过程。移动老鼠过程首先生成一个0到1之间的随机数。如果该数小于0.2,老鼠将改变角度为0到360之间的随机数方向;如果该数大于等于0.2,老鼠的方向保持不变。123.6.4编程截图图3-9定义过程“移动老鼠”图3-10将移动老鼠过程放入计时器1事件中3.7猫与鼠之间的碰撞检测3.7.1编程过程在编程视图中,从过程内置块中拖出“定义过程xx执行xx”的代码块,将过程名改为吃掉老鼠。将鼠标悬停在“创建全局变量生命值”代码块上,拖出“设全局变量生命值为xx”的代码块,拼接在“定义过程xx执行xx”的代码块下方,从数学内置块中拖出“xx+xx”的代码块,拼接在“设全局变量生命值为xx”的代码块后面,将鼠标悬停在“创建全局变量生命值”代码块上,拖出“全局变量生命值”的代码块,放入“+”的左边,从数学内置块中拖出一个表示数值的代码块,将内容改为50,放入“+”的右边。在老鼠模块中拖出“设老鼠.是否显示为xx”代码块拼接在“设全局变量生命值为xx”的代码块下方,从逻辑内置块中拖出“假”的代码块,拼接在“设老鼠.是否显示为xx”的代码块后面。在老鼠模块中拖出“设老鼠.是否启用为xx”代码块拼接在“设老鼠.是否显示为xx”代码块下方,从逻辑内置块中拖出“假”的代码块,拼接在“设老鼠.是否启用为xx”的代码块后面。13在老鼠模块中拖出“调用老鼠.移动到指定位置”代码块拼接在“设老鼠.是否启用为xx”的代码块下方,从数学内置块中拖出“从xx到xx之间的随机整数”代码块拼接在“调用老鼠.移动到指定位置”代码块中X坐标之后,在“从xx到xx之间的随机整数”代码块将第一空改为0,在数学内置块中拖出“xx-xx”的代码块,放入第二个空中,再从竞技场模块拖出“竞技场.宽度”放入“xx-xx”代码块的第一个空中,从老鼠模块拖出“老鼠.宽度”放入“xx-xx”代码块的第二个空中。从数学内置块中拖出“从xx到xx之间的随机整数”代码块拼接在“调用老鼠.移动到指定位置”代码块中Y坐标之后,在“从xx到xx之间的随机整数”代码块将第一空改为0,在数学内置块中拖出“xx-xx”的代码块,放入第二个空中,再从竞技场模块拖出“竞技场.高度”放入“xx-xx”代码块的第一个空中,从老鼠模块拖出“老鼠.高度”放入“xx-xx”代码块的第二个空中。如图3-11所示。(块的作用:每调用一次吃掉老鼠过程,猫的生命值增加50,同时设置老鼠的可见及启用为假,让其消失。最后,随机生成X、Y坐标,并让老鼠移动到随机生成的位置。)从猫模块中拖出“当猫.被触碰执行xx”代码块,从控制内置块中拖出“如果xx则xx代码块,拼接在”“当猫.被触碰执行xx”代码块下方。从逻辑内置块中拖出“xx并且xx”代码块,拼接在如果之后,从逻辑内置块中拖出“xx等于xx”代码块,放入“xx并且xx”代码块的第一个空中,从老鼠模块中拖出“老鼠.是否显示”代码块放入“xx并且xx”代码块的第二个空中。将鼠标悬停在“当猫.被触碰执行xx”下方的其他精灵上,拖出“其他精灵”代码块放入“xx等于xx”代码块的第一个空中,从老鼠模块中拖出“老鼠”代码块放入“xx等于xx”代码块的第二个空中。从过程代码块中拖出“调用吃掉老鼠”代码块拼接在则的后面。在设计视图中添加一个音乐播放器组件,设置源文件为声音文件cat.wav。从音频播放器一模块中,拖出“调用音频播放器1.开始”代码块拼接在“调用吃掉老鼠”代码块下方。如图3-12所示。143.7.2编程截图图3-11定义过程“吃掉老鼠”图3-12碰撞检测3.8实现鼠的“复活”下面将老鼠移动过程分为两个部分:老鼠可见和老鼠不可见。老鼠可见时,移动老鼠的操作没有变化;老鼠不可见时,生成一个随机数,如果随机数小于0.05,则老鼠再次可见并启用,即老鼠复活。下面完善该功能。3.8.1编程过程在编程视图中,找到“定义过程移动老鼠”的代码块,点击该块右上角蓝色符号,在弹出的内容中,将左边的“否则”代码块拖入右侧的“如果”代码块之下,这样就得到了一个“如果xx则xx否则xx”的代码块。在控制内置块中拖出“如果xx则xx”代码块,拼接在否则部分。从数学内置块拖出“xx<xx”代码块,拼接在如果部分之后,从数学内置块拖出“随机小数”代码块,放入“<”的左边,再从数学内置块拖出一个表示值15的代码块,将内容改为0.05放入“<”的右边。从老鼠模块拖出“设置老鼠.是否显示为xx”的代码块,拼接在则的部分,19从逻辑内置块中拖出“真”代码块,拼接在其后。从老鼠模块拖出“设置老鼠.是否启用为xx”的代码块,拼接在则的部分,从逻辑内置块中拖出“真”代码块,拼接在其后。如图3-13所示。3.8.2编程截图图3-13“移动老鼠”过程的完善3.9实现重新开始3.9.1组件放置在设计视图中,拖出一个按钮组件,放在生命值指示条下方,重命名为“重新开始”,并在文本属性输入“重新开始”。3.9.2编程过程在重新开始模块中拖出“当重新开始.被点击执行xx”的代码块。将鼠标悬停在“创建全局变量生命值为100”代码块上方,拖出“设置全局变量生命值为xx”代码块,放在“当重新开始.被点击执行xx”的代码块下方。从数学内置块16拖出一个表示值的代码块,将内容改为200拼接在“设置全局变量生命值为xx”代码块后面。从老鼠模块拖出“设置老鼠.是否显示为xx”代码块,由逻辑内置块中拖出“真”代码块,拼接在其后。从老鼠模块拖出“设置老鼠.是否启用为xx”代码块,由逻辑内置块中拖出“真”代码块,拼接在其后。从猫模块拖出“设置猫.是否启用为xx”代码块,由逻辑内置块中拖出“真”代码块,拼接在其后。从猫模块拖出“设置猫.的图片为xx”代码块,由文本内置块中拖出表示引用的代码块,拼接在其后,并将内容改为cat.png。如图3-14所示。3.9.3编程截图图3-14重新开始按钮的编程3.10实现狗的移动3.8.1组件放置在设计视图中,添加第三个精灵组件至竞技场,重命名为狗,设置图片为dog.png,间隔属性设为10,速度属性设为1,让其移动速度慢于猫和老鼠。3.8.2编程过程在过程内置块中拖出“定义过程xx执行xx”代码块,将过程名改为移动狗。17从控制模块拖出“如果xx则xx”代码块,拼接在“定义过程移动狗执行xx”代码块的下方。从数学内置块拖出“xx<xx”代码块,拼接在如果部分之后,从数学内置块拖出“随机小数”代码块,放入“<”的左边,再从数学内置块拖出一个表示值的代码块,将内容改为0.1放入“<”的右边。从狗模块中拖出“设置狗.方向为xx”代码块,拼接在则的部分之后,从数学内置块中拖出“atan2”代码块,拼接在“设置狗.方向为xx”代码块之后,从数学内置块中拖出“xx-xx”代码块,拼接在“atan2”代码块的y坐标之后,从狗模块中拖出“狗.Y坐标”放入“-”之前,从猫模块中拖出“猫.Y坐标”放入“-”之后。从数学内置块中拖出“xx-xx”代码块,拼接在“atan2”代码块的x坐标之后,从猫模块中拖出“猫.X坐标”放入“-”之前,从狗模块中拖出“狗.X坐标”放入“-”之后。从过程内置块中拖出“调用移动狗”代码块,拼接在“当计时器1到计时间隔点执行xx”下方(如图3-15所示)。如图3-16所示。3.8.3编程截图图3-15将“移动狗”过程放入计时器1的事件中图3-16定义过程“移动狗”183.11猫与鼠之间的碰撞检测及猫的“复活”3.11.1编程过程首先,实现狗吃掉猫的功能:找到“当猫.被碰撞执行xx”代码块,从控制代码块拖出“如果xx则xx”代码块,拼接在之前的“如果xx则xx”代码块下方。从数学内置块中拖出“xx等于xx”代码块拼接在第二个如果部分之后,拖出“其他精灵”代码块放入“xx等于xx”代码块的第一个空中,从狗模块中拖出“狗”代码块放入“xx等于xx”代码块的第二个空中。将鼠标悬停在“创建全局变量生命值为100”代码块上方,拖出“设置全局变量生命值为xx”代码块拼接在第二个则的部分,从数学内置块中拖出一个表示值的代码块,并将内容改为0,拼接在“设置全局变量生命值为xx”的代码块之后。从过程模块中拖出“调用显示生命值”拼接在“设置全局变量生命值为xx”的代码块下方,从过程模块中拖出“调用游戏结束”拼接在“调用显示生命值”的代码块下方。如图3-17所示。再次,实现猫被狗吃掉后回归的功能;找到“当重新开始.被点击执行xx”代码块,从猫模块拖出“调用猫.移动到指定位置”代码块,拼接在“当重新开始.被点击执行xx”代码块下方,从数学内置块拖出“xx到xx之间的随机整数”代码块,拼接在“调用猫.移动到指定位置”代码块的X坐标之后,从数学内置块拖出一个表示值的代码块,将内容改为0,放入“xx到xx之间的随机整数”代码块第一个空中,从数学内置块拖出“xx-xx”代码块,放入“xx到xx之间的随机整数”代码块第二个空中,从竞技场模块拖出“竞技场.宽度”代码块放入“-”左边,从猫模块中拖出“猫.宽度”代码块放入“-”右边。从数学内置块拖出第二个“xx到xx之间的随机整数”代码块,拼接在“调用猫.移动到指定位置”代码块的Y坐标之后,从数学内置块拖出一个表示值的代码块,将内容改为0,放入第二个“xx到xx之间的随机整数”代码块第一个空中,从数学内置块拖出“xx-xx”代码块,放入第二个“xx到xx之间的随机整数”代码块第二个空中,从竞技场模块拖出“竞技场.高度”代码块放入“-”左边,从猫模块中拖出“猫.高度”代码块放入“-”右边。如图3-18所示。193.11.2编程截图图3-17碰撞检测的完善图3-18重新开始程序的完善3.12添加音效3.12.1编程过程在设计视图中添加一个音乐播放器组件,设置源文件为声音文件dog.wav。从音频播放器二模块中,拖出“调用音频播放器2.开始”代码块拼接在“当猫.被碰撞执行xx”代码块中“调用游戏结束”上方。如图3-19所示。找到吃掉老鼠模块,在音频播放器1模块,拖出“调用音频播放器1.振动毫秒数为xx”代20码块,拼接在“定义过程吃掉老鼠”代码块下方,从数学内置块中拖出一个表示值的代码块,将内容改为100,拼接在“调用音频播放器1.振动毫秒数为xx”代码块中毫秒数后面。如图3-20所示。3.12.2编程截图图3-19狗的叫声添加图3-20猫吃掉老鼠时发出振动3.13实现关卡转换3.13.1组件放置在设计视图中,点击复制屏幕,命名为“Sc2”;接着再点击一次复制屏幕,命名为“Sc3”。在“Screen1”和“Sc2”屏幕中,在传感器组件中分别拖入一个计时器。将时间间隔改为30000。在“Screen1”、“Sc2”和“Sc3”屏幕中,在用户界面组件中分别拖入一个文本输入框,放入竞技场上方,分别输入“第一关”、“第二关”和“第三关”。并分别将组件属性中的“是否启用”不要选中。3.13.2编程过程Screen1屏幕:从计时器2模块中拖出“当计时器2.到达计时间隔点执行xx”代码块。从过程内置块中拖出“打开另一屏幕屏幕名xx”,将屏幕名改为21“Sc2”。拼接在“当计时器2.到达计时间隔点执行xx”代码块之下。如图3-21所示。Sc2屏幕:从计时器2模块中拖出“当计时器2.到达计时间隔点执行xx”代码块。从过程内置块中拖出“打开另一屏幕屏幕名xx”,将屏幕名改为“Sc3”。拼接在“当计时器2.到达计时间隔点执行xx”代码块之下。如图3-22所示。找到“当重新开始按钮被点击时执行”代码块,将拼接在其下方的所有代码块删除,从过程内置块中拖出“打开另一屏幕屏幕名xx”,将屏幕名改为“Screen1”,拼接在其下方。如图3-23所示。Sc3屏幕:找到“当重新开始按钮被点击时执行”代码块,将拼接在其下方的所有代码块删除,从过程内置块中拖出“打开另一屏幕屏幕名xx”,将屏幕名改为“Screen1”,拼接在其下方。如图3-24所示。3.13.3编程截图图3-21Screen1屏幕与Sc2屏幕的转换图3-22在Sc2屏幕当中点击重新开始时返回第一关图3-23Sc2屏幕与Sc3屏幕的转换22图3-24在Sc3屏幕当中点击重新开始时返回第

温馨提示

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

评论

0/150

提交评论