【02】Cocos游戏开发引擎从0开发一款游戏-cocos项目目录结构熟悉-调试运行项目-最重要的assets资源文件认识-场景sense了解-优雅草卓伊凡

【02】Cocos游戏开发引擎从0开发一款游戏-cocos项目目录结构熟悉-调试运行项目-最重要的assets资源文件认识-场景sense了解-优雅草卓伊凡

开发背景

接下来我们直接打开我们的项目开始进一步操作,

实战开发

导入项目

我把得到的项目解压到本地,我们开始打开他

导入项目,选择对应路劲,导入成功后双击打开项目

中间这个画布我们可以用鼠标滚轮放大和缩小

这是一款娱乐游戏,甲方是拥有五证齐全加版号的一款要上架的娱乐房卡游戏

项目结构

Cocos Creator 项目有着清晰且规范的目录结构,下面为你详细介绍各个主要目录及其功能。

根目录

项目根目录包含了整个项目的核心文件和配置信息,以下是常见的根目录下的文件夹和文件:

文件夹 / 文件

说明

assets

这是项目中最为重要的目录,用于存放所有的游戏资源,像脚本、纹理、音频、场景等都存于此。开发者日常开发中的大部分资源操作都在这个目录下进行。

libraries

存放项目所依赖的外部库文件,这些库文件可以是 Cocos Creator 官方提供的,也可以是开发者自行引入的第三方库。

settings

包含项目的各种设置文件,例如构建发布设置、编辑器偏好设置等。这些设置文件会影响项目的构建和开发环境。

temp

作为临时文件的存储目录,在项目开发和构建过程中,Cocos Creator 会生成一些临时文件,这些文件会存放在该目录下。

packages

用于存放项目的插件包。开发者可以通过安装插件来扩展 Cocos Creator 的功能,安装后的插件就会存放在这个目录中。

build

项目构建输出的目录,当你使用 Cocos Creator 进行项目构建时,生成的可运行文件会存放在这里,根据不同的平台和构建配置,会生成不同格式的文件。

project.json

项目的配置文件,记录了项目的基本信息、依赖关系等重要配置,Cocos Creator 会根据这个文件来加载和管理项目。

assets 目录

assets 目录是开发者重点关注的目录,它包含了项目所需的各种资源,以下是其常见的子目录:

文件夹

说明

Scripts

存放项目的脚本文件,这些脚本使用 TypeScript 或 JavaScript 编写,用于实现游戏的各种逻辑,如角色控制、游戏规则、事件处理等。

Textures

用于存放纹理资源,也就是各种图片文件,包括角色精灵图、背景图片、图标等,这些图片会在游戏中显示。

Sounds

存放项目的音频资源,如背景音乐、音效等,能为游戏增添丰富的听觉体验。

Scenes

存储项目的场景文件,每个场景文件对应游戏中的一个独立场景,如主菜单场景、游戏关卡场景等。

Prefabs

预制体文件夹,预制体是一种可重复使用的节点组合,将一些常用的节点和组件组合成预制体后,可以在不同的场景中方便地复用。

Materials

材质文件目录,材质用于定义物体的外观属性,如颜色、光泽度、纹理映射等,在 3D 游戏开发中使用较多。

Animations

存放动画资源,包括角色动画、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文件将一张图片设置为特定的压缩格式以减小文件大小,同时保持合适的显示质量。
    • 音频资源:可以配置音频的加载方式(如流式加载或预加载)、音量、循环模式等。
    • 模型资源:涉及模型的缩放、旋转、材质映射等设置。

资源依赖关系

  • .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,点击运行

那么就到这里了,

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

unity pico开发 三 移动 旋转 传送

文章目录 LocomtionSystem平滑移动转身碰撞体随相机改变身高传送添加射线两种传送区域TeleportationAreaTeleportationArea 美化传送射线 LocomtionSystem 在XR Origin上添加LocomtionSystem脚本,并拖拽XR Origin属性 这是移动的基础 平滑移动 在XR Origin上添加…

C语言整体梳理-基础篇-结构体

结构体详解 1.1结构体是什么? 结构体是一些值的集合,这些值成为成员变量,结构体的每个成员可以是不同类型的变量。 数组是相同类型的元素组成的集合,结构体可以是不同类型元素组成的集合。 1.2结构体的声明 1.2.1常规声明 s…

深度解读 AMS1117:从电气参数到应用电路的全面剖析

在电子设备的电源管理领域,线性稳压器扮演着至关重要的角色,而 AMS1117 凭借其出色的性能和广泛的适用性,成为众多工程师的热门选择。本文将依据相关资料,对 AMS1117 的特性、应用、电气参数等方面进行详细解读。 一、功能特性概…

LabVIEW中交叉关联算法

交叉关联算法通过统计多通道信号间的相关性,抑制各通道独立的本底噪声,保留共有的有效信号成分。其数学本质为对多个通道信号进行两两相乘并累加,最终通过归一化处理得到降噪后的输出信号。 这个VI演示了如何在LabVIEW中执行信号的互相关分析…

SAP-ABAP:SAP数据库视图(Database View)详解-创建

在SAP系统中,数据库视图(Database View) 是一种基于物理数据库表的虚拟表,通过关联多个表(使用INNER JOIN)生成逻辑数据集。它存储在数据库中,但本身不存储数据,仅通过查询动态生成结…

GPT-4.5来了

https://chat.xutongbao.top/

Vue3+Node/Express支付宝沙箱支付与确认支付

Vue3Node/Express支付宝沙箱支付与确认支付 支付宝沙箱配置进入沙箱选择自定义密钥 密钥工具下载生成密钥格式转换 自定义密钥设置Express安装依赖项目目录创建alipay.js请求(打开支付)代码router/pay.jsapp.js 前端代码前端封装接口前端调用 实现支付查…

Java数据结构第十四期:走进二叉树的奇妙世界(三)

专栏:数据结构(Java版) 个人主页:手握风云 目录 一、二叉树OJ练习题 1.1. 相同的树 1.2. 另一棵树的子树 1.3. 翻转二叉树 1.4. 平衡二叉树 1.5. 对称二叉树 一、二叉树OJ练习题 1.1. 相同的树 判断两棵树是否相同,我们是否只能遍历一…

生成式AI项目的生命周期

总结自视频(吴恩达大模型入门课):9_13_generative-ai-project-lifecycle_哔哩哔哩_bilibili 生成周期如下图,包含四部分:任务范围(Scope),选择大模型(Select&#xff09…

基于POI的Excel下拉框自动搜索,包括数据验证的单列删除

目录 目标 例子 1.搜索下拉框页 2.数据源页 3.效果 代码以及注意事项 1.代码 2.注意事项 1.基于Excel的话,相当于加入了一个【数据验证】 2.代码中的一些方法说明 目标 期望在Excel利用代码创建具备自动搜索功能的下拉框 例子 1.搜索下拉框页 2.数据源…

一文弄懂TCP断开连接时候的四次挥手

部分内容来源:小林coding TCP四次挥手过程是怎样的 天下没有不散的宴席,对于 TCP 连接也是这样, TCP 断开连接是通过四次挥手方式 双方都可以主动断开连接,断开连接后主机中的「资源」将被释放,四次挥手的过程如下图…

DeepSeek-R1-Zero:基于基础模型的强化学习

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列四DeepSeek大模型技术系列四》DeepSeek-…

Word 插入图片会到文字底下解决方案

一、现象描述 正常情况下,我们插入图片都是这样的。 但有时突然会这样,插入的图片陷于文字底部。 二、网上解决方案 网上有教程说,修改图片布局选项,从嵌入型改成上下型环绕。改完之后确实有用,但是需要手动拖动图片…

UniApp+Vue3实现高性能无限滚动卡片组件:垂直滑动、触摸拖拽与动态导航的完美结合

引言 在移动应用开发中,流畅且吸引人的用户界面对于提升用户体验至关重要。本文将详细介绍如何使用UniApp和Vue3框架构建一个具有垂直方向无限滚动卡片、触摸拖拽支持、同步导航栏和平滑动画效果的高级UI组件。我们将通过代码分析每个功能的实现细节,帮助…

使用Docker Compose部署 MySQL8

MySQL 8 是一个功能强大的关系型数据库管理系统,而 Docker 则是一个流行的容器化平台。结合使用它们可以极大地简化 MySQL 8 的部署过程,并且确保开发环境和生产环境的一致性。 安装 Docker 和 Docker Compose 首先,确保你的机器上已经安装了 Docker 和 Docker Compose。 …

计算机黑皮书191本分享pdf

“黑皮书”通常指的是由机械工业出版社出版的计算机科学丛书。这些书籍的封面通常是黑色的,因此得名“黑皮书”。这些书籍涵盖了计算机科学的各个领域,包括操作系统、计算机网络、软件工程、编译原理、数据库等。 获取链接:链接:https://pan…

LeapVAD:通过认知感知和 Dual-Process 思维实现自动驾驶的飞跃

25年1月来自浙江大学、上海AI实验室、慕尼黑工大、同济大学和中科大的论文“LeapVAD: A Leap in Autonomous Driving via Cognitive Perception and Dual-Process Thinking”。 尽管自动驾驶技术取得长足进步,但由于推理能力有限,数据驱动方法仍然难以应…

R语言+AI提示词:贝叶斯广义线性混合效应模型GLMM生物学Meta分析

全文链接:https://tecdat.cn/?p40797 本文旨在帮助0基础或只有简单编程基础的研究学者,通过 AI 的提示词工程,使用 R 语言完成元分析,包括数据处理、模型构建、评估以及结果解读等步骤(点击文末“阅读原文”获取完整代…

面试八股文--数据库基础知识总结(2) MySQL

本文介绍关于MySQL的相关面试知识 一、关系型数据库 1、定义 关系型数据库(Relational Database)是一种基于关系模型的数据库管理系统(DBMS),它将数据存储在表格(表)中,并通过表格…

入门基础项目(SpringBoot+Vue)

文章目录 1. css布局相关2. JS3. Vue 脚手架搭建4. ElementUI4.1 引入ElementUI4.2 首页4.2.1 整体框架4.2.2 Aside-logo4.2.3 Aside-菜单4.2.4 Header-左侧4.2.5 Header-右侧4.2.6 iconfont 自定义图标4.2.7 完整代码 4.3 封装前后端交互工具 axios4.3.1 安装 axios4.3.2 /src…