承接上一篇:【Unity项目实战】手把手教学:飞翔的小鸟(4)文本添加,我们已经使得主角小鸟接触到地面后跳转到Game Over状态,接下来我们将继续往下,讲解得分机制。

一、重新进入游戏

根据上篇最后的描述,我们小鸟掉到草地就会立马被判断为游戏失败,并且播放“GameOver”文本,播放小鸟“DIE”动画,点击鼠标不能再飞起来。而我们可以将点击鼠标视为重新进入游戏,实现的方法也很简单,只需要在游戏已经结束的情况下检测到鼠标左键有点触动作,即将游戏自动开始,我们回到GameControl脚本里面添加以下代码段:

填写完成后我们保存,跳转到unity主页面,就可以看到失败后再次点击鼠标,游戏会自动开始。

二、背景滚动

接下来我们要让角色小鸟真正地往右边飞翔起来躲避障碍物,虽说是飞翔,但实际上我们的主角小鸟是静止不动的,真正在动的是背景,我们控制小鸟不断地飞翔,背景不断地在滚动,使得我们看起来就像是小鸟在动一样。

为此,我们需要在背景图里面添加一个刚体以及控制脚本,用来控制背景图按照某个速度慢慢向左移动。首先我们在背景图的控件下添加一个2D刚体,方便我们控制背景图:

添加刚体后,我们还需要将材质改变成为“Kinematic”,这样我们的背景图就不会受到物理重力的影响往下坠。下一步,我们来到“GameControl”脚本中,因为我们往左移动背景图是需要一个速度的,而我们就在“GameControl”脚本下的单例模式中定义这个变量,使得这个变量可以被单例化以及全局化(如果不明白什么是单例模式,可以查看我的上一篇文章:【Unity项目实战】手把手教学:飞翔的小鸟(4)文本添加):

添加完速度变量后,接着我们在背景图地控件下新建一个名字为“ScrollingObject”的脚本:

双击图上标志处进入到脚本中, 添加以下代码:

接下来,我们还需要判断,当游戏失败时,背景图也停止移动,在Update函数下添加以下内容:

我们保存一下,回到unity主界面上运行一下游戏,就可以观察到背景图在往左移动,并且小鸟在接触到草地后背景图将停止移动,但是新的问题又来了:背景图会逐渐远离我们的视野,最后只留下一片空无的场景和我们的小鸟在假飞!所以我们要做到的效果应该是背景图在即将飞出视野框的时候,在右边重新生成一张新的背景图!这样我们的小鸟才会看起来像是永远都在背景图里面飞翔。为此我们需要的是一份一摸一样的背景控件,将背景图复制、粘贴一份:

然后在将两个背景图拼接起来:

接下来我们要做的就是通过脚本来让这两个背景图交替出现,当小鸟在红框背景图的时候,蓝框背景图就在右边待命,小鸟进入到蓝框背景图时,红框背景图就立马跑到右边待命,如此循环。 因此我们需要添加一个负责让背景图来回跑的脚本:

并且创建一个名字为“RepeatingBackGround”的脚本:

双击打开后先初始化以下参数:

接着我们编写背景图偏移函数,使得两个背景图都能保持跳到右边等待小鸟飞过来:

最后,我们在Update函数中实时判断,当小鸟飞到距离背景图边边的时候,就立马调用背景图偏移函数将背景图往右移动一个,使得小鸟视界中没有空无背景:

如果不知道我在说什么,没有关系,我们保存好后回到unity主页面运行一下游戏,你就会明白了。在下一个文章中,我们将会将障碍添加进来,为游戏增加游戏性。

【Unity项目实战】手把手教学:飞翔的小鸟(5)背景滚动相关推荐

  1. 【Unity项目实战】主程进阶之路文章整理 自用记录

    声明:下列文章链接转载自陆泽西 (Jesse Lu)的个人博客,仅供个人学习参考使用,如若侵权,告知删除 1.要点技术 <Unity3D高级编程之进阶主程>第一章,C#要点技术(一) - ...

  2. 【Unity项目实战】主程进阶之路文章整理

    声明:下列文章链接转载自陆泽西 (Jesse Lu)的个人博客,仅供个人学习参考使用,如若侵权,告知删除 1.要点技术 <Unity3D高级编程之进阶主程>第一章,C#要点技术(一) - ...

  3. 【新手上路】Java必备小游戏——Flappy Bird(飞翔的小鸟)

    <飞翔的小鸟>是一款曾经比较火热的小游戏,本文可以带你你从零开始,一步一步的开发出这款小游戏.如果你只是刚入门java的新手,不用担心,只要你简单掌握了该游戏所需要的javase基础知识, ...

  4. Taro多端开发实现原理与项目实战(一)

    Taro 多端开发实现原理与项目实战 前端多端统一开发背景与趋势介绍 背景 「大前端」不仅会成为移动开发与 Web 前端的发展趋势,也会是未来的显示设备终端的开发技术趋势? 越来越多的业内人士对此表示 ...

  5. 【PBL项目实战】户外智慧农场项目实战系列——5.天气预报API接口对接

    [PBL项目实战]户外智慧农场项目实战系列--5.天气预报API接口对接 原文链接  https://mp.weixin.qq.com/s/jditkIEd-UK6cSQyCC_-Eg 本系列以户外智 ...

  6. 【PBL项目实战】户外智慧农场项目实战系列——1.阿里云物联网平台的开通与云端可视化应用的新建

    岭师人工智能素养教育共同体PBL项目教程系列之1:户外智慧农场项目实战系列 原文链接  https://mp.weixin.qq.com/s/avKWJHNvnPeFsdEXUBByjw 本系列以户外 ...

  7. 【PBL项目实战】户外智慧农场项目实战系列之4——Mind+Mixly双平台ESP32数据上云及云端可视化实时展示

    [PBL项目实战]户外智慧农场项目实战系列之4--Mind+Mixly双平台ESP32数据上云及云端可视化实时展示 原文链接  https://mp.weixin.qq.com/s/r_NeJdPoi ...

  8. 【PBL项目实战】户外智慧农场项目实战系列——7.Mind+Mixly双平台工业级多合一空气质量传感器数据上云及云端可视化展示

    [PBL项目实战]户外智慧农场项目实战系列--7.Mind+Mixly双平台工业级多合一空气质量传感器数据上云及云端可视化展示 原文链接  https://mp.weixin.qq.com/s/ZEU ...

  9. 【PBL项目实战】户外智慧农场项目实战系列——2.产品与设备的新建及与云端可视化应用的关联

    [PBL项目实战]户外智慧农场项目实战系列--2.产品与设备的新建及与云端可视化应用的关联 原文链接  https://mp.weixin.qq.com/s/mH4bRSf93QC4Jhhd5ci2m ...

最新文章

  1. 80070583类不存在_Java自学-接口与继承 内部类
  2. mysqljs在koa2中的正确姿势
  3. 当Elasticsearch遇见Kafka
  4. Docker多容器连接-以Nginx+PHP为例
  5. effective mysql之备份与恢复_Effective MySQL之备份与恢复
  6. iangularjs 模板_2018-web前端的自我介绍-优秀word范文 (5页)
  7. html纵向固定导航菜单代码,CSS3单页面垂直固定导航
  8. redis发布与订阅
  9. hibernate CascadeType属性说明
  10. 机器学习之K-means算法:深入浅出K-Means算法
  11. Seay源代码审计系统2.1源码
  12. php+mysql新闻发布系统(一)
  13. ios 发光字体文字的实现
  14. r语言员工离职_离职员工预测--python
  15. bpy(python)无法安装 pipconda都无法install linux系统(pip install bpy)
  16. 【苹果推软件】Apple IOS推送证书 如何创建CSR文件
  17. Big Faceless PDF Library大型机的任何Java平台运行
  18. c++practice
  19. Visual Studio 2022如何安装和使用MSDN
  20. ThinkPad E14 G2 笔记本声音无法外放问题的解决办法

热门文章

  1. 【matlab专题】APP设计(一):APP的作用与开发
  2. html meta标签大全
  3. LeetCode(String)1768. Merge Strings Alternately
  4. axure手机页面设计说明_使用Axure打造最佳的移动端交互原型教程(附元件库分享)...
  5. 基于Qt实现的股票分析预测软件,实现外排序功能,创建索引,加快数据获取,根据股票的年月和代码进行k线图展示,热力图展示,相关系数计算,最后价格预测和股票价格曲线展示。
  6. electron系统托盘与右键菜单
  7. Sql 成绩表中每个科目的最高分和学生
  8. mysql主从复制测试,【拥抱开源2】MYSQL主从复制以及切换测试
  9. 迪杰斯特拉算法及其堆优化
  10. 数据结构之链表(JAVA)