Cocos Creator学习笔记08

游戏场景切换

第一种方式:直接加载一个新场景

这里指的不是编辑器切换编辑不同的场景,而是游戏运行中,从一个场景切换到另一个场景,比如游戏开始界面场景中点击了“开始游戏"按钮,进而切换到游戏的场景。切换场景有两种方法:

1、直接加载一个新场景

cc.directorloadScene(sceneName:string, onLaunched: function)

其中sceneName是要加载的场景名,

onLaunched是一个回调函数,当新场景加载完成并正常运行后,会调用该回调函数。

一般情况下没有用,但是有些特殊情况下有用,有时候需要把当前场景的某些东西保存下来,比如分数,角色血量。

并且当onLaunched调用之后老的场景就不存在了,就会被直接destroy

新建两个场景(ctrl+n)并保存

0fbdc40d16bb4fc5819f01c0a7edd7b2.png

在start场景里面新建一个button

9f8f3162a49d43429c58dabc0fd53ee4.png 

 创建一个脚本并挂载到button组件上,编辑脚本添加事件

添加一个自定义事件gameStart由于是点击事件要加一个Handler, 括号里面可以写参数也可以不写

7efe161f607548a18e2ea0926dec83fd.png

大括号写场景切换

cc.director这里是小写因为调用的不是类而是对象

loadScene()切换场景的方法,里面有两个参数

第一个参数是场景名“name”

第二个参数是可有可无,这里用一个箭头函数演示

9250499049e04f06adfc494cdd3755f6.png

 

绑定事件

2457162f5b0f447a9d2b99484b2c6823.png

 运行

第一个场景

18c1653f6aa64bf786c5c1c4f56501bd.png

 点击后切换场景

178c6c160f2d4493911984a1947a88de.png

验证老场景被销毁掉了

在脚本里面写一个生命周期函数onDestroy()

4504844356e24ef6b4b5bee1cef3d20e.png

运行结果

5314b2aabbce400a8ed3f12af64078b0.png loadScene方法会自动加载新场景,并且在场景加载完成后,会自动切换。

第二种方式:预加载场景 

有时候游戏的场景比较大,直接使用loadScene进行切换,可能会卡在原地几秒钟后才能进入新的场景,为了避免这种现象,我们需要对较大的场景进行预加载:
cc.director.preLoadScene(sceneName: string,anProgress: function, onLoaded: function)

其中onProgress是加载进度发生改变的回调函数,可以有三个参数:
        completedCount: number已经加载的资源个数。每次加载一个资源它就会回调一次,可以用于进度条百分比。
        totalCount: number场景总资源个数。
        item: any流出加载管道的最新项目。

onLoaded是加载完成的回调函数,可以有一个参数:
error: Error加载错误信息。

预加载场景,并不会在场景加载完成后,执行切换场景的操作,我们还是需要在代码逻辑中添加loadScene来完成切换。

如何运用

进度条演示

编写脚本

先创建一个ui节点ProgressBar,先让其不显示,当点击开始游戏时就显示。

92cce51148e24244b37881e58298765e.png

 

  active代表

614017ca04d34645a3f450e061be4d34.png

预加载场景

第一个参数切换的场景名字

dbcc91d5219e4a83afb94704c850df4a.png

回调函数的内容

计算progress

let progress = completedCount / totalCount

组件类型是cc.progress

aae24939d367457b8f8ee8f2a2fa38f2.png

它的progress属性等于progress

8642464db549423eaa6846c68208bed0.png

 运行后由于资源很少进度条加载得很快

写一个属性没有加载完是false

 e8ad23e1967d45aaafdf31d05449c2bc.png

 加载完成后就是ture

e9a3e7097fc443a388a5f26bb19b5566.png

然后将代码放在start()里面

d7c90cc2c80340a8a5cd340b618ad0b6.png

然后当我们点击按钮时需要触发的事件为

判断一下是否真的可以切换

如果是true就可以进行切换场景 

fefdf9b8dd2642b1a040e987cb25cea4.png

最后运行效果是当进度条满了以后点击button就能切换场景。 

 

 


 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 很高兴为您回答!Cocos Creator是一款基于Cocos2d-x框架的游戏开发工具,提供了一个友好的图形化界面和丰富的功能,方便开发者快速制作游戏。 如果您想学习Cocos Creator,以下是一些学习资源: 1. 官方文档:Cocos Creator官方网站提供了详细的开发文档和教程,是学习的第一步。 2. 视频教程:您可以在YouTube或者Bilibili上搜索Cocos Creator视频教程,从中学到更多实用的技巧。 3. 开源项目:GitHub上有许多Cocos Creator开源项目,您可以通过阅读代码来加深对Cocos Creator的理解。 4. 论坛和社区:Cocos官方论坛和社区是您寻求帮助和交流的好地方。 希望这些资源能帮助您快速学习Cocos Creator,开发出更多精彩的游戏。 ### 回答2: Cocos Creator是一款面向游戏开发者的跨平台游戏引擎,它具有易用性、高效性、灵活性和扩展性的特点,因此备受开发者青睐。学习Cocos Creator的教程将帮助您深入了解引擎的功能和使用方法。 首先,您可以通过官方网站或在线社区获得Cocos Creator学习教程。官方网站上提供了大量的教程和文档,包括入门教程、项目案例和API文档等。这些教程以简明的语言和丰富的示例代码,帮助开发者逐步了解Cocos Creator的各个模块,如场景编辑、粒子系统、动画和物理系统等。 此外,Cocos Creator的在线社区也是学习的宝贵资源之一。社区中有众多开发者分享自己的心得和经验,您可以在其中提问、参与讨论,从中获取解决问题的方法和学习的灵感。 除了官方提供的教程和社区资源,您还可以参考一些优秀的第三方教程。这些教程可能以书籍、视频教程或博客的形式存在,通过借鉴他人的经验,您可以更加深入地了解Cocos Creator的使用技巧和开发实践。 最后,除了学习教程,实践也是学习Cocos Creator的重要一环。通过自己亲自动手完成一些小项目或实验,您可以更好地理解和掌握引擎的各个功能。在实践中遇到问题时,可以利用教程和社区资源进行查找和求助,以加深对Cocos Creator的理解。 总之,通过官方教程、社区资源以及第三方教程的学习,结合自己的实践经验,您将能够逐步提高自己的Cocos Creator开发技能,实现更加出色的游戏开发成果。 ### 回答3: Cocos Creator是一款面向游戏开发的跨平台开发工具,学习教程涵盖了从入门到进阶的内容,可以帮助开发者快速掌握该工具的使用。 首先,Cocos Creator学习教程介绍了该工具的基本概念和操作界面,帮助用户熟悉工具的各个模块和功能。教程会详细介绍如何创建项目、导入资源、设计场景等基础操作,让开发者对Cocos Creator有一个全面的了解。 其次,教程会介绍如何利用Cocos Creator进行游戏的开发。开发者可以学习到如何创建游戏对象、添加组件、编写脚本等内容,通过实践项目,了解游戏开发的整个流程。教程还会介绍如何添加动画效果、碰撞检测、物理模拟等高级功能,让游戏更加生动和有趣。 除了游戏开发,Cocos Creator还支持跨平台的应用开发。教程会介绍如何使用Cocos Creator进行应用的开发,包括UI设计、用户交互、数据存储等方面的内容。开发者可以学习到如何调用原生平台的API,实现更多功能和扩展。 最后,教程会提供一些实战案例供开发者参考,让他们可以更好地理解和应用所学知识。此外,Cocos Creator官方还提供了丰富的在线文档和社区支持,开发者可以通过官方网站和论坛获取更多资料和帮助。 总之,通过Cocos Creator学习教程,开发者可以系统地学习该工具的使用方法,并掌握游戏开发和应用开发的基本技能。无论是初学者还是有一定经验的开发者,都可以从中受益,提升自己的开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值