手把手教你如何设计打地鼠游戏(技术教程)

写在前面:这是一篇冗长而专业的技术教程, 林子费劲功夫想让学习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

手把手教你如何设计打地鼠游戏(技术教程)的相关文章

手把手教你玩转CSS3 3D技术

手把手教你玩转 CSS3 3D 技术 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上的2D事物,从而展现3D的效果.旋转则不再是2D平面上的旋转,而是三维坐标系的旋转,就包括X轴,Y轴,Z轴旋转.平移同理. 当然用理论来说明,估计你还不明白.下面是3个gif: 沿着X轴旋转 沿着Y轴旋转 沿着Z轴旋转 旋转应该没问题了,那理解平移起来就比较容易了,就是在在X轴.Y轴.z轴移动. 你可能

手把手教你建github技术博客by hexo

适合人群 喜欢写Blog的人 有一定的编程基础 爱折腾的人 熟练使用版本控制Git 了解使用Github 熟悉基本的MarkDown语法 环境准备 安装Git 下载 msysgit 并执行即可完成安装. 安装Node.js 在 Windows 环境下安装 Node.js 非常简单,仅须下载安装文件并执行即可完成安装. 安装hexo 利用 npm 命令即可安装.(在任意位置点击鼠标右键,选择Git bash) npm install -g hexo 问题 * npm ERR! registry e

【技术分享】手把手教你使用PowerShell内置的端口扫描器

[技术分享]手把手教你使用PowerShell内置的端口扫描器 引言 想做端口扫描,NMAP是理想的选择,但是有时候NMAP并不可用.有的时候仅仅是想看一下某个端口是否开放.在这些情况下,PowerShell确实能够大放异彩.接下来我们聊聊如何使用PowerShell实现基本的端口扫描功能. 本文中用到的PowerShell命令 PowerShell端口扫描器:针对单个IP的多个端口的扫描 1..1024 | % {echo ((new-object Net.Sockets.TcpClient)

手把手教你架构3D游戏引擎

最近利用空闲的时间写了一本针对程序员开发3D游戏引擎的书籍,<手把手教你架构3D游戏引擎> 电子工业出版社,里面涉及到向量变换,矩阵变换,固定流水线的实现.给读者揭秘引擎的底层封装实现,对于学习者非常容易上手,可以做到举一反三,再学习其它引擎就会得心应手.目前在天猫,京东等各大网站有售,网址: https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.2.FFMx82&id=542498976531&areaId=3

微信测试工程师手把手教你做弱网络模拟测试

微信测试工程师手把手教你做弱网络模拟测试 Posted by 腾讯优测 | 3,152 views 小优有话说: app研发不同于实验室里做研究,哪里有"理想环境". 理想里,用户用着性能卓越的手机,连着畅通无阻的wifi网络. "哇塞!这个app好用到飞起!" 现实是,他们可能正用着你闻所未闻的机型,穿梭于地铁.公交.火车.乡间.大山-.. 信号"若隐若现,扑朔迷离" "我去!又crash了!" "唉,怎么又连不上

手把手教你写专利申请书/怎样申请专利

手把手教你写专利申请书·怎样申请专利 摘要小前言(一)申请前的准备工作    1.申请前查询    2.其它方面的考虑    3.申请文件准备(二)填写专利申请系列文档    1.实际操作步骤    2.详细操作    3.经验分享.注意事项(三)关于费用(四)其它的话參考资源提示常见问题的问与答 摘要: 怎样写好专利申请?由于非常多专利申请人都是第一次申请,因此,可能有一种神奇和些许恐惧.本文写的是怎样写专利申请书,手把手教你写专利申请并提供申请专利时的注意事项,专利申请费用及费用减缓等相关參

CSS3实战开发:手把手教你鼠标滑动特效开发

各位网友,如果你已经看过我的CSS3实战开发系列教程,我相信你对CSS3已经有了非常全面深刻的了解.有些人可能CSS3语法掌握了不少,但是真正实际用起来还有点生疏,甚至无从下手.请别担心,我会不断更新一系列实战开发案例,我会为大家分步骤剖析特效开发过程. 今天我将手把手带领大家开发一个鼠标滑动的特效案例,废话不多说,直接上效果动画: 你有没有觉得上面的这个特效很棒呢! 好,现在咱们就开始分步骤实战开发这个动画特效吧: 首先,我们先准备好html页面代码: <!DOCTYPE html> <

团队项目——打地鼠游戏(SPEC)系统性能评估测试

1.SPEC测试的目标: 本轮测试的目的是测试打地鼠游戏的需求以及确保每个需求都能得到满足的方法.编写此需求说明书是为了使用户和开发人员对所开发的系统有一致的理解.通过阅读此说明书,开发人员可以了解当前业务的具体需求和要实现的主要功能,用户通过阅读此说明书可以确认开发人员对其业务需求的认识是否正确,并对系统要实现功能有初步的了解. 本轮测试内容包括以下打地鼠游戏以下的子系统: 1.游戏功能子系统 2.积分功能子系统 3.DIY功能子系统 4.计时功能子系统 5.排行功能子系统  2. 项目的典型

CSS3实战开发:手把手教大家搜索表单发光特效实战开发

各位网友,大家好,我是陌上花会开,今天这个案例,我将带领大家,手把手教大家开发一个会发光的表单组,还是先秀运行效果图吧: 从这个效果图,大家可以发现,当光标在某个组件上时,它就会发光,今天我将带领大家实战开发这个特效. PS: 大家可以直接将博客中的代码复制到本地便可得到同样的运行效果. 首先,我们先准备好html代码: <!doctype html> <html> <head> <meta charset="utf-8"><met