【02】Cocos游戏开发引擎从0开发一款游戏-cocos项目目录结构熟悉-调试运行项目-最重要的assets资源文件认识-场景sense了解-优雅草卓伊凡
开发背景
接下来我们直接打开我们的项目开始进一步操作,
实战开发
导入项目
我把得到的项目解压到本地,我们开始打开他
导入项目,选择对应路劲,导入成功后双击打开项目
中间这个画布我们可以用鼠标滚轮放大和缩小
这是一款娱乐游戏,甲方是拥有五证齐全加版号的一款要上架的娱乐房卡游戏
项目结构
Cocos Creator 项目有着清晰且规范的目录结构,下面为你详细介绍各个主要目录及其功能。
根目录
项目根目录包含了整个项目的核心文件和配置信息,以下是常见的根目录下的文件夹和文件:
文件夹 / 文件 | 说明 |
| 这是项目中最为重要的目录,用于存放所有的游戏资源,像脚本、纹理、音频、场景等都存于此。开发者日常开发中的大部分资源操作都在这个目录下进行。 |
| 存放项目所依赖的外部库文件,这些库文件可以是 Cocos Creator 官方提供的,也可以是开发者自行引入的第三方库。 |
| 包含项目的各种设置文件,例如构建发布设置、编辑器偏好设置等。这些设置文件会影响项目的构建和开发环境。 |
| 作为临时文件的存储目录,在项目开发和构建过程中,Cocos Creator 会生成一些临时文件,这些文件会存放在该目录下。 |
| 用于存放项目的插件包。开发者可以通过安装插件来扩展 Cocos Creator 的功能,安装后的插件就会存放在这个目录中。 |
| 项目构建输出的目录,当你使用 Cocos Creator 进行项目构建时,生成的可运行文件会存放在这里,根据不同的平台和构建配置,会生成不同格式的文件。 |
| 项目的配置文件,记录了项目的基本信息、依赖关系等重要配置,Cocos Creator 会根据这个文件来加载和管理项目。 |
assets 目录
assets
目录是开发者重点关注的目录,它包含了项目所需的各种资源,以下是其常见的子目录:
文件夹 | 说明 |
| 存放项目的脚本文件,这些脚本使用 TypeScript 或 JavaScript 编写,用于实现游戏的各种逻辑,如角色控制、游戏规则、事件处理等。 |
| 用于存放纹理资源,也就是各种图片文件,包括角色精灵图、背景图片、图标等,这些图片会在游戏中显示。 |
| 存放项目的音频资源,如背景音乐、音效等,能为游戏增添丰富的听觉体验。 |
| 存储项目的场景文件,每个场景文件对应游戏中的一个独立场景,如主菜单场景、游戏关卡场景等。 |
| 预制体文件夹,预制体是一种可重复使用的节点组合,将一些常用的节点和组件组合成预制体后,可以在不同的场景中方便地复用。 |
| 材质文件目录,材质用于定义物体的外观属性,如颜色、光泽度、纹理映射等,在 3D 游戏开发中使用较多。 |
| 存放动画资源,包括角色动画、UI 动画等,通过动画编辑器创建的动画文件会保存在这里。 |
示例目录结构展示
收起
plaintext
project-root/
├── assets/
│ ├── Scripts/
│ │ ├── GameManager.ts
│ │ ├── PlayerController.ts
│ │ └── ...
│ ├── Textures/
│ │ ├── player.png
│ │ ├── background.jpg
│ │ └── ...
│ ├── Sounds/
│ │ ├── bgm.mp3
│ │ ├── click.wav
│ │ └── ...
│ ├── Scenes/
│ │ ├── MainMenu.scene
│ │ ├── GameLevel1.scene
│ │ └── ...
│ ├── Prefabs/
│ │ ├── Enemy.prefab
│ │ ├── Coin.prefab
│ │ └── ...
│ ├── Materials/
│ │ ├── Metal.material
│ │ ├── Glass.material
│ │ └── ...
│ └── Animations/
│ ├── PlayerRun.anim
│ ├── ButtonClick.anim
│ └── ...
├── libraries/
│ └── ...
├── settings/
│ └── ...
├── temp/
│ └── ...
├── packages/
│ └── ...
├── build/
│ └── ...
└── project.json
通过这样的目录结构,Cocos Creator 项目能够有效地组织和管理各种资源,提高开发效率和项目的可维护性。
我们再来回顾看下本项目的结构目录,非常清晰。
我们在左上角点击 项目 -运行预览 是可以直接在浏览器运行到预览的
可以看看
不过发现进不去,这个后面再来。
assets 资源文件
我们可以看到 assets 资源文件夹下面有.meta格式文件,他对应着每一个文件名,那么这是
在 Cocos Creator 项目的assets
目录下,每个资源文件都会对应一个同名的.meta
文件,这些.meta
文件起着至关重要的作用,以下为你详细介绍:
资源唯一标识
- 每个
.meta
文件中都包含一个全局唯一标识符(GUID)。Cocos Creator 通过这个 GUID 来识别和管理资源,而不是依赖于资源文件的路径和名称。当资源文件的名称或位置发生改变时,只要.meta
文件存在且其中的 GUID 不变,Cocos Creator 依然能够正确地找到和引用该资源。例如,你将一个图片资源从assets/Textures
目录移动到assets/NewTextures
目录,只要对应的.meta
文件跟着移动,项目中对该图片资源的引用不会受到影响。
资源导入配置
.meta
文件记录了资源的导入配置信息,这些配置决定了资源在导入引擎时的处理方式。不同类型的资源有不同的导入配置选项:
-
- 纹理资源:配置包括纹理的压缩格式、滤波模式、是否开启 mipmap 等。比如,你可以通过
.meta
文件将一张图片设置为特定的压缩格式以减小文件大小,同时保持合适的显示质量。 - 音频资源:可以配置音频的加载方式(如流式加载或预加载)、音量、循环模式等。
- 模型资源:涉及模型的缩放、旋转、材质映射等设置。
- 纹理资源:配置包括纹理的压缩格式、滤波模式、是否开启 mipmap 等。比如,你可以通过
资源依赖关系
.meta
文件会记录资源之间的依赖关系。例如,一个预制体资源可能依赖于多个纹理、音频和脚本资源,.meta
文件会记录这些依赖信息。当 Cocos Creator 加载该预制体时,会根据.meta
文件中的依赖关系自动加载所需的其他资源,确保资源的正确加载和使用。
版本控制与协作开发
- 在多人协作开发或使用版本控制系统(如 Git)时,
.meta
文件非常重要。它可以帮助团队成员保持资源的一致性,避免因资源引用问题导致的冲突。当团队成员拉取代码时,.meta
文件会确保每个人使用的资源配置和引用关系是相同的。
资源状态管理
.meta
文件还可以记录资源的一些状态信息,如资源是否被标记为隐藏、是否为只读等。这些状态信息可以帮助开发者更好地管理项目资源,提高开发效率。
总之,.meta
文件在 Cocos Creator 项目中是不可或缺的,它确保了资源的正确管理、加载和使用,是项目稳定开发和维护的重要保障。在开发过程中,要注意不要随意删除或修改.meta
文件,以免导致资源引用错误。
其次我们要知道场景概念
场景 sense
在 Cocos 开发中,Scene(场景)是一个核心概念,它是游戏或应用程序的一个独立单元,以下从多个方面详细介绍场景的概念:
定义与基本作用
- 定义:场景是游戏世界中的一个特定部分,就像戏剧中的一幕,它包含了一组相互关联的游戏元素,这些元素共同构成了一个完整的游戏画面或交互界面。
- 基本作用:作为游戏内容的组织和管理单位,负责承载游戏中的各种元素,如角色、道具、背景等,并控制这些元素之间的交互和行为,为玩家提供特定的游戏体验。
场景的组成要素
- 节点(Node):场景的基本构建块,代表场景中的一个对象。节点可以是一个角色、一个道具、一个 UI 元素等。节点可以包含各种组件(Component),用于实现不同的功能。例如,一个精灵节点可以包含一个 Sprite 组件,用于显示图片;一个文本节点可以包含一个 Label 组件,用于显示文字。
- 组件(Component):附加在节点上的功能模块,用于实现节点的特定行为。Cocos Creator 提供了许多内置组件,如 Sprite(精灵)、Label(标签)、Button(按钮)、RigidBody(刚体)等,开发者也可以自定义组件。组件可以控制节点的外观、行为、物理属性等。
场景的类型与应用
- 主菜单场景:作为游戏的入口,通常包含开始游戏、设置、退出等功能按钮。玩家可以在这个场景中选择进入游戏的不同模式或进行游戏设置。例如,在一个角色扮演游戏中,主菜单场景可能会提供 “新游戏”“继续游戏”“设置”“退出” 等选项。
- 游戏关卡场景:实现游戏的主要玩法,包含各种游戏元素和规则。在这个场景中,玩家需要完成特定的任务或目标,如击败敌人、收集道具、通过关卡等。例如,在一个平台跳跃游戏中,游戏关卡场景会包含玩家角色、障碍物、敌人、金币等元素,玩家需要控制角色避开障碍物,击败敌人,收集金币并到达关卡终点。
- 游戏结束场景:当玩家完成游戏或游戏失败时显示的场景,通常会显示游戏结果、得分等信息,并提供重新开始游戏或返回主菜单的选项。
场景的切换与管理
- 场景切换:在游戏过程中,根据游戏逻辑需要在不同的场景之间进行切换。例如,当玩家点击主菜单中的 “开始游戏” 按钮时,游戏会从主菜单场景切换到游戏关卡场景;当玩家完成一个关卡或游戏失败时,游戏会从游戏关卡场景切换到游戏结束场景。在 Cocos Creator 中,可以使用
director.loadScene
方法来实现场景的切换。示例代码如下:
typescript
import { director } from 'cc';// 切换到指定场景
director.loadScene('GameLevel1');
- 场景管理:对于包含多个场景的游戏,需要进行有效的场景管理。可以使用场景管理器来控制场景的加载、卸载、切换等操作,确保游戏的流畅运行。例如,可以在场景切换时进行资源的预加载和释放,避免出现卡顿现象。
场景的编辑与调试
- 场景编辑:在 Cocos Creator 的场景编辑器中,可以直观地创建、编辑和组织场景。通过拖拽节点、添加组件、设置属性等操作,可以快速搭建出场景的布局和功能。同时,场景编辑器还提供了实时预览功能,方便开发者及时查看场景的效果。
- 场景调试:在开发过程中,需要对场景进行调试,确保场景中的元素和逻辑正常工作。可以使用 Cocos Creator 提供的调试工具,如断点调试、日志输出等,来定位和解决问题。例如,在脚本中添加日志输出语句,查看变量的值和程序的执行流程,帮助调试场景中的逻辑错误。
当然了我们在这上面可以点击直接切换场景,我们可以看到我们有1个场景 app,这里可以切换
比如我切换到lobby,点击运行
那么就到这里了,