实验过程:

程序描述

研究背景:以打地鼠小程序为灵感,以此做出改良优化。程序主要功能:益智小游戏,练习手速,放松娱乐。技术路线:Windows    XP/7操作系统 MIT APP Inventor开发软件程序设计(模块图、算法流程图)

根据游戏制作选定抓蝴蝶游戏所覆盖的组件并了解其概念:

精灵组件:具有触感的可移动图像; 画布组件:精灵的舞台;计时器组件:用来计时,让精灵可以改变形状和随机移动;音效播放器组件:击中蝴蝶时产生振动,设置背景音乐; 按钮组件:开始游戏或重新开始; 标签组件:用来显示文字;对话框组件:用来提示玩家胜利,以供玩家选择是否继续游戏;

对抓蝴蝶游戏进行组件设计:

根据游戏要求,设置三个屏幕,分别为开始页面,游戏页面,失败结束页面; 首先对开始页面进行设计:

美化屏幕:首先对开始页面设置背景图片garden.jpg; 在从组件面板的用户界面分组中,拖入按钮组件,将文本设置为开始游戏,并将其重命名为开始游戏,并对其外观进行相应小设计;设置背景音乐:从组件面板的多媒体分组中,找到音效播放器组件,将其拖放到预览窗口中,它将落在“非可视组件”区域,音量为50,上传背景音乐,并将它设置为只在前台运行

该组件设计图如下:

对游戏页面进行设计:

美化屏幕:首先对开始页面设置背景图片bcg.jpg;在从组件面板的用户界面分组中,拖入按钮组件,将文本设置为重新开始,并将其重命名为重新开始按钮,并对其外观进行相应小设计;设置游戏规则:在从组件面板的用户界面分组中,拖入标签组件,将其文本内容改为“当抓到十只蝴蝶时胜利,当扑空三次时失败”;从组件面板的绘图动画分组中,拖动画布组件,采用其默认名称为:画布1,设置其高度与宽度属性为“充满”,并设置背景图片garden.jpg;   从组件面板的绘图动画分组中,拖动三个精灵组件,将其放置在画布1中,将其改名为“butterfly1”、 “butterfly2” 和“butterfly3”,设置其图片属性为之前上传的butterfly1.png、butterfly2.png和butterfly3.png,设置宽度高度为30px;从布局组件中拖出水平布局组件,放置于画布下,并从用户界面分组中先拖出四个标签,放置在该水平布局,分别将标签其显示文本属性设为“扑空次数:”、“0”“捕获蝴蝶只数”、“0”并将四个标签重新命名为“扑空提示”、“扑空次数”、“捕获提示”和“捕获只数”。为了美观再将一个图像放置在水平布局中并对外观进行一些小设计;从组件面板的多媒体分组中,找到音效播放器组件,拖放俩个到预览窗口中,它们将落在“非可视组件”区域,音量为50,一个是用来设置背景音乐,所以我们上传了音乐进去,还有一个是为了抓获蝴蝶时的震动效果;为了实现蝴蝶的造型改变,我们从组件面板的传感器分组中,找到计时器组件,拖三个放在预览窗口中,它们将自动落入预览窗口下方的“非可视组件”区域,将其计时间隔设置为400;又为了实现蝴蝶的移动,我们从组件面板的传感器分组中,再次找到计时器组件,再拖三个放在预览窗口中,它们将自动落入预览窗口下方的“非可视组件”区域,将其计时间隔设置为1000;为了用来提示玩家胜利,我们从用户界面找到了对话框组件,拖一个放在预览窗口中,它将自动落入预览窗口下方的“非可视组件”区域,将其改名为“Victory”;

该组件设计图如下:

                                                                                                                                                   

对失败结束页面进行设计:

美化屏幕:首先对开始页面设置背景图片defeat.jpg;在从组件面板的用户界面分组中,拖入按钮组件,将文本设置为重新开始,并对其外观进行相应小设计;

该组件设计图如下:

设置好了组件设计后,我们要进行逻辑设计:

首先对开始页面进行设计:

当屏幕初始化,需要调动背景音乐开始:

当开始游戏按钮被点击,应该出现游戏界面:

     逻辑设计总图:

          

再对游戏页面进行设计:

以精灵1中的蝴蝶为例,对蝴蝶造型进行改变,使它移动时具有动态感:

1先设置一个全局变量索引为1,再初始化全局变量蝴蝶造型为同一个蝴蝶四个不同方向的图像(这里需运用列表):

2运用计时器1,对于数范围从一到四增加,每次增加1,执行butterfly1的图片为选择列表“蝴蝶造型”中的索引值为为全局变量“索引”的列表项。设置全局变量索引每次循环加一,为放置出错:当全局变量>4时,全局变量索引为1:

以精灵1中的蝴蝶为例,使蝴蝶可以自由移动:这里同样运用了计时器,使butterfly1速度为15,设置butterfly方向为随机整数1到360:

记录成绩

1 当画布1被触摸时,根据是否触碰到精灵记录成绩;

2 若碰到精灵,捕获只数次数标签的显示文本改为“捕获只数标签的显示文本+1”

3 若没有碰到精灵,扑空次数标签的显示文本改为“扑空次数标签的显示文本+1

4 若扑空次数文本>=3,打开结束页面Screen3

5若捕获只数文本>=10,则调用对话框“Victory”,显示标题为“Victory!”,信息为“你已胜利,是否继续抓蝴蝶”,按钮1文本为“YES”,按钮2文本为“NO”,允许撤销为真:

抓蝴蝶震动效果:

1 当蝴蝶被触摸时,让音效播放器产生振动效果;

2 可在组件设计中设置音量,在逻辑设计中设置震动毫秒数

设置重新开始按钮:当重新开始按钮被点击,设置捕获只数标签文本为“0”并设置扑空次数标签文本为“0”:

    游戏总的逻辑设计图如下:

对失败页面进行设计

当按钮1(重新开始)被点击,应该出现游戏界面:

程序代码(核心功能模块代码介绍)

蝴蝶的造型改变:

1先设置一个全局变量索引为1,再初始化全局变量蝴蝶造型为同一个蝴蝶四个不同方向的图像(这里需运用列表):

2运用计时器1,对于数范围从一到四增加,每次增加1,执行butterfly1的图片为选择列表“蝴蝶造型”中的索引值为为全局变量“索引”的列表项。设置全局变量索引每次循环加一,为放置出错:当全局变量>4时,全局变量索引为1:

蝴蝶的自由移动:

1以精灵1中的蝴蝶为例,使蝴蝶可以自由移动:这里同样运用了计时器,使butterfly1速度为15,设置butterfly方向为随机整数1到360:

关于计分问题,以及胜利失败时出现会出现的情况

1 当画布1被触摸时,根据是否触碰到精灵记录成绩;

2 若碰到精灵,捕获只数次数标签的显示文本改为“捕获只数标签的显示文本+1

3 若没有碰到精灵,扑空次数标签的显示文本改为“扑空次数标签的显示文本+1

4 若扑空次数文本>=3,打开结束页面Screen3

5若捕获只数文本>=10,则调用对话框“Victory”,显示标题为“Victory!”,信息为“你已胜利,是否继续抓蝴蝶”,按钮1文本为“YES”,按钮2文本为“NO”,允许撤销为真:

程序测试(程序运行截屏及介绍)

关于开始界面,界面以简约为主,会伴随着轻音乐伴奏,当点击按钮即可去游戏界面:

来到游戏界面,你会看见三只蝴蝶翩翩起舞,由于蝴蝶造型改变与蝴蝶的移动会让人感到蝴蝶的动态美:

试玩游戏,你会发现,当捉到蝴蝶时,你的捕获只数会增加,当扑空时,扑空次数会增加,当你想归零时,按重新开始按钮即可归零:

根据游戏界面的规则提示,你会发现当抓到十只蝴蝶时即可胜利,这时会弹出一个对话框,向你庆祝,并询问你是否还要继续抓蝴蝶:

若是扑空次数达到三次,你会发现你来到了结束页面,在结束页面上会有重新开始按钮你可以点击它重新返回页面:

说明文档

本游戏灵感来源于打地鼠游戏,是对它的一个改良与升级,它可以更加动态拟真的进行移动,让人感到更逼真,可以利用这个游戏进行平时的休闲放松。

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: