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

那么就到这里了,

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring结合mybatis多租户实现单库分表

实现单库分表 思路:student表数据量大,所以将其进行分表处理。一共有三个分表,分别是student0,student1,student2,在新增数据的时候,根据请求头中的meta-tenant参数决定数据存在哪张表表。 数…

数据结构:Top-K问题详解

一.Top-K问题 #include<stdio.h> //先自主创建n个数据 void CreateNDate() {// 造数据int n 100000;srand(time(0));//表示随时间初始化随机生成数的种子const char* file "data.txt";///创建一个文件FILE* fin fopen(file, "w");//“只写”写入创…

基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成

本教程的演示都将在 Flink CDC CLI 中进行&#xff0c;无需一行 Java/Scala 代码&#xff0c;也无需安装 IDE。 这篇教程将展示如何基于 Flink CDC YAML 快速构建 MySQL 到 Kafka 的 Streaming ELT 作业&#xff0c;包含整库同步、表结构变更同步演示和关键参数介绍。 准备阶段…

AI绘画软件Stable Diffusion详解教程(3):Windows系统本地化部署操作方法(通用版)

上一篇教程介绍了如何在本地部署Stable Diffusion专业版&#xff0c;虽然便于技术人员研究&#xff0c;但是普通人使用起来不便捷&#xff0c;每次只能通过cmd窗口的指令形式或者python代码方式来画图&#xff0c;要记很多的指令很繁琐。 本篇教程教您搭建webui版的&#xff0…

进程 ─── linux第10课

目录 回顾上一节 进程 基本概念 描述进程 - PCB task_struct - PCB的一种 task_ struct内容分类 组织进程 下面来介绍task_struct内部 PID 和PPID 子进程与父进程 getpid()和getppid() 杀进程 exe 和 cwd 回顾上一节 1. 如果我们写的程序要访问硬件,必定通过sy…

量子计算的数学基础:复数、矩阵和线性代数

量子计算是基于量子力学原理的一种新型计算模式,它与经典计算机在信息处理的方式上有着根本性的区别。在量子计算中,信息的最小单位是量子比特(qubit),而不是传统计算中的比特。量子比特的状态是通过量子力学中的数学工具来描述的,因此,理解量子计算的数学基础对于深入学…

PostgreSQL_安装部署

一、Windows系统下安装 1.下载安装包 登录PostgreSQL: Downloads官网&#xff1a; 选择14.12版本&#xff0c;点击下载&#xff1a; 2.安装PostgrSQL14.12 双击exe安装包程序&#xff0c;准备安装&#xff1a; 选择安装路径&#xff1a; 选择想安装的工具&#xff1a; 选择数…

Idea 和 Pycharm 快捷键

一、快捷键 二、Pycharm 中怎么切换分支 参考如下 如果在界面右下角 没有看到当前所在的分支&#xff0c;如 “Git:master” 3. 有了 4.

第十四届蓝桥杯:DFS之飞机降落

这道题&#xff0c;由于它的数据范围是非常小的&#xff0c;我们可以采取暴力搜索的措施&#xff0c;把每种情况都枚举出来&#xff0c;如果有能行的情况就返回true 同时我们也要学会剪枝&#xff0c;如果已经确认飞机不能降落&#xff0c;就不要往下再展开了 #include <i…

Oracle 查询表空间使用情况及收缩数据文件

本文介绍Oracle收缩数据文件的相关操作&#xff0c;运维工作中有时会需要通过收缩数据文件来释放磁盘空间。 数据文件初始化方式&#xff1a; 1.我们创建表空间一般有两种方式初始化其数据文件&#xff0c;即指定初始大小为32G&#xff08;很大的值&#xff09;或指定初始大小为…

android 新增native binder service 方式(一)

关于之前说的native service 之前有写过类似的文章&#xff0c;今天主要介绍下如何通过binder 方式跨进程调用和回调,结合网上的各种文章&#xff0c;总结了3种常见的添加方式&#xff0c;供大家参考。 一&#xff0c;aidl 文件定义 先看下整体的目录结构 libserviceaidl 就是…

【大模型系列篇】大模型微调工具 LLama-Factory、Unsloth、ms-SWIFT

今日号外&#xff1a;&#x1f525;&#x1f525;&#x1f525; DeepSeek团队正式启动为期五天的开源计划 Day3&#xff1a;DeepGEMM。DeepGEMM 是一个专为简洁高效的 FP8 通用矩阵乘法&#xff08;GEMM&#xff09;设计的库&#xff0c;具有细粒度缩放功能&#xff0c;如 Deep…

安宝特科技 | Vuzix Z100智能眼镜+AugmentOS:重新定义AI可穿戴设备的未来——从操作系统到硬件生态,如何掀起无感智能革命?

一、AugmentOS&#xff1a;AI可穿戴的“操作系统革命” 2025年2月3日&#xff0c;Vuzix与AI人机交互团队Mentra联合推出的AugmentOS&#xff0c;被业内视为智能眼镜领域的“iOS时刻”。这款全球首个专为智能眼镜设计的通用操作系统&#xff0c;通过三大突破重新定义了AI可穿戴…

自然语言处理(NLP):文本向量化从文字到数字的原理

在人工智能领域&#xff0c;尤其是自然语言处理&#xff08;NLP&#xff09;中&#xff0c;将文本信息转化为机器可以理解的形式是一个至关重要的步骤。本文探讨如何将文本转换为向量表示的过程&#xff0c;包括分词、ID映射、One-hot编码以及最终的词嵌入&#xff08;Embeddin…

如何免费使用稳定的deepseek

0、背景&#xff1a; 在AI辅助工作中&#xff0c;除了使用cursor做编程外&#xff0c;使用deepseek R1进行问题分析、数据分析、代码分析效果非常好。现在我经常会去拿行业信息、遇到的问题等去咨询R1&#xff0c;也给了自己不少启示。但是由于官网稳定性很差&#xff0c;很多…

Cherry Studio + 火山引擎 构建个人AI智能知识库

&#x1f349;在信息化时代&#xff0c;个人知识库的构建对于提高工作效率、知识管理和信息提取尤为重要。尤其是当这些知识库能结合人工智能来智能化地整理、分类和管理数据时&#xff0c;效果更为显著。我最近尝试通过 Cherry Studio 和 火山引擎 来搭建个人智能知识库&#…

Python:循环

while循环&#xff1a; 基本格式如下&#xff1a; i1 while i<100: print(好好学习天天向上) i1 同理还有while循环嵌套&#xff1a; for循环&#xff08;迭代循环&#xff09; 基本格式&#xff1a; strhello for i in str print(i)#int整型不是迭代对象&#xff0c;需…

【leetcode hot 100 15】三数之和

一、两数之和的扩展 class Solution {public List<List<Integer>> threeSum(int[] nums) {// 将得到的结果存入Set中&#xff0c;保证不重复Set<List<Integer>> set new HashSet<>();// 模拟两数之和&#xff0c;作为第一个循环中的内容for(in…

Cesium高级开发教程之四十三:缓冲区分析#线

一、简介 基本概念:线缓冲区分析是指以 Cesium 中的线要素(如道路、河流等)为基础,在其两侧创建一定宽度的带状区域。例如,在地图上有一条河流的线数据,通过线缓冲区分析,可以得到河流两侧一定范围内的缓冲区域,用于表示河流的影响范围或进行相关的分析。实现原理:在 …

制造执行系统(MES)应用分析

全文概述 本文详细阐述了制造执行系统(MES)应用研究的主要内容,包括MES的定义、市场需求、企业选型与实施、应用现状、面临的挑战以及未来发展趋势。文章中基于广泛的行业调研,提供了详实的分析和见解。首先介绍了MES的基本概念和重要性,随后探讨了MES市场的投资、需求和选…