写在前面:这是一篇冗长而专业的技术教程, 林子费劲功夫想让学习ComputerScience不辣么枯燥,着实花了好多时间呢?不信往下看嘛?!文末有惊喜哟!
本App设计的功能包括:自带背景音乐;地鼠随机出现;计分计时,分数和剩余时间实时显示在屏幕上。
Step1:
素材准备篇
萝卜坑背景图一张(这张图是处理过的啦?云朵们看得出来哪里有手术痕迹吗?)
三种Size地鼠图片各一张(为什么要准备不同Size呢?有图任性嘛?!!哈哈哈!注意是背景透明的png格式)
准备一份音频文件作为打地鼠背景音乐
Step2:界面设计篇
拖拽一张画布到屏幕上,为画布设置指定的高度和宽度,我这里设置了宽350,高400。接着,拖拽9个图像精灵到画布上 ,将图像精灵分别放在背景图中有坑的位置。将第一排地鼠的图像设置为mouse1.png、第二排设置为mouse2.png,第三排设置为mouse3.png,之所以没有用到同一个图像,是为了获得视觉体验的真实性,第一排地鼠最大,越往后地鼠越小。 各个组件的具体设置详情见下图:
问:组件的名称为什么又设中文又设英文的,好不伦不类啊!
答:呃~~我想说,全部英语你能看懂吗?
Step3: 逻辑设计篇(一起来烧脑,哟哟切克闹~~)
- 1、初始化全局变量
- mouselist为列表类型变量,用来存放9只地鼠
- play为一个开关逻辑变量,初始化设置为false,当play按钮被按下设置其为true
- score为数据类型变量,初识成绩为为0
- endtime为数据类型变量,初识赋值60,单位为s,用来做游戏倒计时
- music为一个开关逻辑变量,用来控制是否播放音乐
- 2、定义过程initialize
- 计时器要等到开始按钮被按下才启用
- 开始按钮未被按下,将play设置为false
- 背景音乐按钮未被按下,将music设置为false
- 初始化score为0
- 为列表变量mouselist初始化,相当于为列表赋值
- 一开始想设置图像精灵全部不显示,因此,这里使用了一个循环,循环取列表中的图像精灵,将其显示状态设置为false,图像精灵通过索引值的方法来获得。而且这里用到了任意组件
- 设置画布的画笔颜色为白色
- 设置画布的线宽
- 在背景图上画字“倒计时”,这里调用了“沿角度画字”这个方法,目的是让画出的字能够很好地显示在我们的背景图中
- 在背景图上画字“分数”
- 3、设置屏幕初始化动作
问:这里为什么没有解释?
答:这么简单,还要解释?
- 设计随机显示地鼠的过程
- 随机选择要显示的地鼠,这里同样用到了任意组件中的任意精灵的方法
- 任意组件的好处是我们不必为每一个组件设置重复的方法
问:任意精灵到底在辣里吗?我怎么找不到嘞?
答:就知道你们会问这个问题辣,幸好我早有准备以寻找图像精灵的显示状态这个过程为例
- 设计地鼠隐藏过程
- 将传值进来的地鼠显示状态设置为false,也就是隐藏该地鼠
- 将分数增加1分
- 调用随机显示地鼠的过程
- 该过程需要接收一个参数number,number为地鼠的序号
- 设置精灵被触碰的动作
- 当精灵被触碰,即调用hidemouse这个过程,并把地鼠的序号作为参数传过去,由于任意精灵中没有精灵触碰事件,因此9个精灵分别要写相应的程序去处理。
- 处理play按钮单击事件
- 将play开关设置为取反,即如果当前play为false,那么按下按钮则为true
如果play为true,则将play按钮的显示文本设置为“暂停”,启动计时器计时
- 否则,也就是play为false,则将play的显示文本设置为“开始”,停止计时器计时,并且显示警告信息“游戏暂停”,这个过程中play按钮充当了一个开关。
- 处理音乐按钮单击事件
- 这里的music逻辑变量也相当于一个开关,通过判断music的真假来播放音乐。
- 定义过程——“显示结果”
- 处理stop按钮单击事件
- 当按下停止按钮,进行判断,如果剩余时间大于0,说明游戏没有结束,因此提醒用户“时间还没到,是否确定退出游戏?”
- 当用户选择退出,则停止计时器计时,停止音乐播放,显示最终成绩
- 设置计时器计时
- 每隔1S,剩余时间-1
- 如果剩余时间为0,停止计时器计时,显示“时间到,游戏结束!”对话框;显示最后的结果,显示结果为一个单独的过程,将music、play、stop都设置为不启用
- 如果时间没有到,就继续显示倒计时间和分数,这里在调用画字过程之前都用到了清除画布,原因是如果不清除画布,画布上会留下上一次的文字痕迹~~不懂?自己把清除画布功能去掉看看效果嘛?!
- 设置退出按钮事件
- 直接关闭屏幕,退出程序
至此本次教程Over~~~~感兴趣的云朵们可以研究一下将分数存储在网络服务器上,实现排行榜功能~!啦啦啦!
写到这里云朵们可能想说:发个源码啦!可是我打死也不相信林子和云朵们的小船会说翻就翻~~~为了防止小船说翻就翻,呃,默默贡献源码~~
云端微课坚持分享实用信息资讯和原创信息技术教程
林子有话说:不说了,直接看图
云端微课不做网络的搬运工
坚持分享实用信息资讯和原创信息技术教程
时间: 2024-10-10 17:20:09