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

news2024/11/26 22:17:32

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

一、重新进入游戏

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

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

二、背景滚动

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88769.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络流量回溯分析助力企业实现高效率运维(一)

背景 汽车配件电子图册系统是某汽车集团的重要业务系统。业务部门反映,汽车配件电子图册调用图纸时,出现访问慢现象。 某汽车总部已部署NetInside流量分析系统,使用流量分析系统提供实时和历史原始流量。本次分析重点针对汽车配件电子图册系…

[附源码]Node.js计算机毕业设计二手书交易软件设计与实现Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

数据技术之数据挖掘

第7章 数据挖掘 1.什么是数据挖掘 数据挖掘(Data Mining)就是从大量的数据中,提取隐藏在其中的,事先不知道的、但潜在有用的信息的过程。数据挖掘的目标是建立一个决策模型,根据过去的行动数据来预测未来的行为。 2.阿里数据挖掘平台 阿里…

Java-1213

JVM历程 Sun Classic VM 1996年发布,世界上第一款商用Java虚拟机,JDK1.4时被淘汰,现在hotspot内置了此虚拟机 这款虚拟机只提供了解释器(现在主流的虚拟机还会提供即时编译器JIT)解释器和JIT两者用一个就可以让程序执…

分享一种 ConstraintLayout 让TextView 自适应的同时,还不超出限制范围的方式

分享一种 ConstraintLayout 让TextView 自适应的同时,还不超出限制范围的方式 不知道大家有没有遇到这种布局需求: 上图布局很简单,ImageView 中间的TextView View ImageView,需求是中间的 TextView 宽度需要根据内容来展示&…

OpenMLDB 实时引擎性能测试报告

OpenMLDB 提供了一个线上线下一致性的特征平台。其中,为了支持低延迟高并发的在线实时特征计算,OpenMLDB 设计实现了一个高性能的实时 SQL 引擎。本报告覆盖了 OpenMLDB 实时 SQL 引擎的性能测试,包含了在较为复杂的负载、典型配置下的各种性…

多线程知识笔记(四)-----volatile、wait方法、notify方法

文章目录1、volatile关键字2、volatile和synchronized对比3、wait和notify方法1、volatile关键字 先看例子: class Counter {public int flag 0; }public class Test4{public static void main(String[] args) {Counter counter new Counter();Thread t1 new Th…

如何使用Footrace 钱包监控功能和设置自定义的交易警报

2022-06-12 本文将介绍如何使用 Footrace 监控 CEX 的钱包地址并设置自定义警报。 什么是 Footrace? Footrace (Foot Trace) 是一个多链的钱包追踪监控平台,可以监控CEX、DEX、鲸鱼、聪明钱、或任何你想关注的地址的钱包。 Footrace 帮助投资者保护他…

有了这几个软件安全测试工具,编写安全测试报告再也不愁

软件的安全是开发人员、测试人员、企业以及用户共同关心的话题,尤其是软件产品的使用者,因为系统中承载着用户的个人信息、人际互动、管理权限等各类隐私海量关键数据。软件安全测试工作不仅是为了用户,更牵扯到许多的利益共同体。因此软件安…

2854-40-2,环二肽cyclo(Pro-Val)

Component of coffee flavor 咖啡香精成分 在烘焙咖啡中检测到Cyclo(Pro-Val)和其他含pro的二酮哌嗪类化合物。这些化合物的含量随着烘焙强度的增加而增加,它们增加了苦味。这种味道苦涩的环二肽也在可可、巧克力、牛肉和奶酪等其他食品中被检测到。Cyclo(Pro-Val)显…

Linux物理内存管理——会议室管理员如何分配会议室

之前学习了站在内存的角度去看内存,看到的都是虚拟内存,这些虚拟内存总是要映射到物理页面的,这一篇文章来学习物理内存是如何管理的。 物理内存的组织方式 之前学习虚拟内存的时候,当涉及物理内存的映射的时候,总是…

不会还有人不知道如何搭建【关键字驱动自动化测试框架】吧 ?

前言 这篇文章我们将了解关键字驱动测试又是如何驱动自动化测试完成整个测试过程的。关键字驱动框架是一种功能自动化测试框架,它也被称为表格驱动测试或者基于动作字的测试。关键字驱动的框架的基本工作是将测试用例分成四个不同的部分。首先是测试步骤&#xff0…

MobileNet网络模型(V1,V2,V3)

MobileNet网络中的亮点:DW卷积,增加了两个超参数,控制卷积层卷积核个数的α,控制输入图像大小的β,这两个超参数是我们人为设定的,并不是学习到的。BN batch normal批规范化,为了加快训练收敛速…

大数据MapReduce学习案例:数据去重

文章目录一,案例分析(一)数据去重介绍(二)案例需求二,案例实施(一)准备数据文件(1)启动hadoop服务(2)在虚拟机上创建文本文件&#xf…

大数据MapReduce学习案例:TopN

文章目录一,案例分析(一)TopN分析法介绍(二)案例需求二,案例实施(一)准备数据文件(1)启动hadoop服务(2)在虚拟机上创建文本文件&#…

linux把乱码文件(非文件内容)删除(Xshell中使用rz命令上传文件出现乱码,删除乱码文件)的步骤讲解

我的场景是:首先安装lrzsz:yum install lrzsz,然后后使用rz -be上传文件出现乱码问题,想要把乱码文件删除 圆圈圈出来的就是乱码文件,横线划线出来的是使用rm命令删除但是无效 解决方法是:ls | grep -v ‘…

人人都是数据分析师

一.耳熟能详的数据你真的了解吗? 1.数据的类型 根据数据的存储形式,可以将数据分为结构化数据和非结构化数据两种类型 存储在数据库中的结构化数据能够很方便地进行检索、分析以及展示分析结果。结构化数据是进 行数据分析的基本类型,大多数…

【1697. 检查边长度限制的路径是否存在】

来源:力扣(LeetCode) 描述: 给你一个 n 个点组成的无向图边集 edgeList ,其中 edgeList[i] [ui, vi, disi] 表示点 ui 和点 vi 之间有一条长度为 disi 的边。请注意,两个点之间可能有 超过一条边 。 给…

(附源码)springboot建达集团公司平台 毕业设计 141538

springboot建达集团公司平台 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发…

DAMOYOLO:基于DAMOYOLO训练数据集详细教程

前段时间yolov7的推出引起一篇热潮,接着rmyolo紧跟潮流,后面阿里的达摩院也推出了自己的yolo算法,怎么说呢,damoyolo推出依旧不少天了,现在才写博客,因为damoyolo给我的体验感不是很好。 先看下DAMOYOLO的…