cocos creator 快速开始笔记

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

新手上路 - 工具链介绍

cocos creator:是一个界面类似 UE, Unity 的 2d/3d 工程编辑器。按我目前的理解,他们的操作逻辑也相似,不过 CC 的逻辑写起来可能更简单,因为用的是脚本语言 TypeScript 在浏览器环境运行,不需要编译

文件夹目录结构

重要的是 assets, local, profiles, settings, package.json,需要添加到版本控制。其中,asset 是资产和元数据,其余的是配置。lib 是自动生成的。

编辑器窗口介绍

如图,UI 幻视 ps、unreal、vscode。应该说前端的逻辑会趋同嘛……

文档讲的很清楚,我觉得很关键的组件是用树来组织对象的层级管理器,感觉是带命名空间的图层这种感觉。

引入 TS 的基本逻辑是先写个脚本,填写生命周期函数,然后选中场景中的物体,在属性面板关联该脚本。

通常,一个游戏是靠不同的脚本逻辑驱动进行的。在 CC 中,每个 TS 脚本定义了一个组件 Component。将组件挂在到某个节点上(拖动 or 在属性检查器上 AddComponent)就可以生效。

快速开始:做一个 2d 游戏

和 Unity 类似,Cocos Creator 也是 ECS(Entity-Component-System) 架构,可以通过给 Node 添加不同的组件来实现游戏的功能。

本节和下一节分别实现 2d 和 3d 版本的同一个跳格子小游戏,点左键跳一格右键两格。

大体的流程和上面是一样的。

1. 搭建模型组成初始的场景地图

2. 编写脚本,给每个节点(模型)挂载脚本,实现移动跳跃逻辑,实现初始化和判定逻辑

3. 绘制 UI,控制相机

4. 在高一级的 Manager 管理所有 Component

搭建场景 - 场景编辑器

略。本游戏简化为了一个红方块站在一排白方块头顶上跳来跳去。

实现脚本逻辑 - Component & Node

这个 demo 里,红方块按 ↗↘ 的方式跳跃。作为演示,我们用 ts 实现水平方向的向右平动,然后用动画实现竖直方向的先上后下移动。(从这里也能看出来,更复杂的移动代码可能做不了,让动画师顶上)

1. 简单用 ts 实现平动逻辑

监听 onMouseUp 事件;触发后设置 Component 的 private 属性 `_startJump = true`,并根据此时的位置和按键计算速度 + 终点坐标,缓存到 private 属性中。另一边,在 update(deltaTime) 视口函数中,根据先前计算的 Component 变量计算下一帧位置,调用 this.node 的接口更新位置。

其中,在 2d 场景下坐标也是 Vec3,就是 z = 0.

2. 实现动画

通常我们在制作 2D 动画时,有几种办法:

  • 关键帧动画:通过引擎制作,常用于如 UI 动画、序列帧动画等
  • 骨骼动画:通过第三方 2D 动作制作工具导出并使用

本教程中我们会使用关键帧动画来制作角色的跳跃效果。

类似视频编辑软件,CC 提供了在时间轴上多轨道编辑的功能。编辑时,需要选定节点和轨道。轨道包括 position(xyz), rotation。

打开动画编辑器的情况下,修改 Node 的属性会自动创建关键帧,并更新新的位置。

可以看到,动画和代码是解耦的,动画可以帧为单位创作时间流,播放速度可能需要再调整。

创建动画前,需要把 anime 文件挂载到节点的 Animation 剪辑列表;创建动画后,需要在 ts 内触发代码播放。在本例中,TS 组件 UserController 在实现切换动画状态时,使用了 Animation.play 异步 API。获取 Animation 对象时,组件用装饰器 @property  声明了 BodyAnim 变量,该变量需要用户在 Editor 内将节点拖动到属性面板实现赋值。

    @property(Animation) // Let user set value in editor
    BodyAnim: Animation = null;

坑:不要在 x 方向设置关键帧,会冲突(动画覆盖代码的 setPosition)

初始化地图 - GameManager

类比 c++ 对象的 constructor,我们希望在游戏初始化的时候加载一些资源,完成初始化工作,并在整个游戏对象生命周期内保存初始化的数据。

可以创建一个名为 GameManager 的组件类,利用 start 生命周期函数满足这一需求。

- 在 GameManager 的成员中,声明 @property({type: PreFab}) 的成员变量,在编译后从 editor 指向之前保存的预制体地板

- 触发 start 时,随机生成一个 bitmap,根据 bitmap 的每一位值实例化 PreFab。cc.instantiate 函数可以克隆 PreFab 对象到场景中。

通过对象初始化后,在场景编辑器预览的界面和实际界面就不同了。

绘制 UI

UI 相机和 Player 相机需要挂载在两个不同的 Canvas 下。这是因为,2D 游戏类型本身有一个名为 Canvas 的节点作为角色、地图和游戏逻辑的父节点,该 Canvas 的相机会移动,导致 UI 无法渲染。因此,必须创建一个新的 Canvas (和配套 Camera) 来作为 UI 的容器。

一个参考的 UICanvas 节点关系图如下,其中 StartMenu 在点击后隐藏,Step 展示完成个数不隐藏,两个节点需要分开画。

管理游戏状态 - GameManager

重构 GameManager,在支持初始化地图的基础上,管理 Player 的状态,判定游戏结束,协调 UI。

1. 用 enum{GS_INIT, GS_PLAYING, GS_END} 定义可能的状态,在设置状态的同时以同步的方式初始化成员变量。这包括 Input.on/off, StartMenu.active, 重置 Player 位置

2. 在 PlayerControler,当 isJumping 刷新时触发一个自定义的事件 JumpEnd Event;在 GameManager 监听该事件。该事件的 Handler 里,计算跳跃终点有没有掉到坑里。

实现卷轴效果

卷轴指的是 2d 游戏 Player 不断向右移动后相机和场景要移动。

在本例中,取消 Canvas 的 Align Canvas with Screen,把 Camera 设置成 Player 子对象保持相对距离固定,就可以让相机随屏幕移动了

配置多相机图层

多相机场景下,多个相机的输出会直接叠加。同一个 UI 或 Player 在屏幕上可能出现两次。可以将不同的节点设置不同的图层,然后配置每个相机的 visible 图层,实现每个物体只会出现在一个相机中。

如:UICanvas 放在 UI_2D 图层;Canvas 放在 Default 图层。两个相机一个只显示 Default 一个只显示 UI_2D

图层和节点的父子层次不是一个概念。

监听 IO 输入

监听触摸事件 | Cocos Creator

CC 支持 Input.on / Input.off 和 node.on / node.off 两种方式监听。类似 python 的 logging,从 Input 监听会接收所有 IO,从 node 监听会接收某个范围的 IO

在处理触摸事件时,需要用 node 分左右两个区。

小坑:用户点击开始之后可以 wait 100ms,然后再监听输入,改善体验以防误触。

快速开始:做一个 3d 游戏

和 2d 没啥大区别,不写了

如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏? 基于cocos2d-x的Entity-Component-System游戏架构方法,避免传统面向对象开发模式中的各种问题!!!附带示例小游戏!!! 阅读详情

相关推荐

Cocos Creator 极速入门

课程亮点 紧扣最新版特性解读,比官方文档更详实 官方范例源码解析,实战中掌握功能用法 实操个人游戏项目,由理论进阶实践应用 走通研发完整流程,快速上手 H5、小游戏开发 专家推荐 该课程对 Cocos Creator 官方实例工程做了详尽解说,并从作者多年引擎开发经验的角度,深入分析了其中的技术要点。对于想要快速掌握 Cocos Creator 功能用法的开发者,这是一个很不错的参考资料。 —...

GitChat 2万+

最新开源方案!Cocos Creator 写一个ECS框架+行为树,实现格斗游戏 AI

引言:实现游戏 AI 的方式有很多,目前最为常用的主要有有限状态机和行为树。和有限状态机相比,行为树有更好的可扩展性和灵活性,能实现更复杂的 AI 需求。开发者honmono 在 Cocos Creator 中用一个ECS + BehaviorTree 框架实现了一个格斗 AI Demo,一起来看看他的方案。Demo 示例这个格斗 AI Demo 包含了巡逻、追踪、攻击、躲避攻击、受伤打断攻击...

Cocos的博客 5713

快速入门 Cocos Creator 3D Shader 上篇

前言 Shader,又名着色器,是控制 GPU 绘制的指令集。从某种意义来说,着色器是一个把输入转换到输出的程序,为图形渲染管线的某个特定部分而运行。图形渲染管线是渲染的核心组件。通过给定虚拟相机、3D 模型以及光源等场景要素来生成图像。整个渲染流程又可以大致分为:应用阶段、几何阶段、光栅化阶段。其中,应用阶段是在 CPU 上进行,主要负责场景渲染数据的准备,比如顶点数据,相机数据等;几何阶段是在...

mywayday的博客 3520

CocosCreator_ECS 项目使用教程

CocosCreator_ECS 项目使用教程 1. 项目介绍 CocosCreator_ECS 是一个基于 Cocos Creator 的实体组件系统(Entity-Component-System,简称 ECS)框架。ECS 是一种用于游戏开发的架构模式,它通过将实体、组件和系统分离开来,提供了一种高效的方式来组织和处理游戏中的各种数据和逻辑。 在这个框架中,实体 是游戏中的基本单元,由一个或...

gitblog_00635的博客 1154

用23种设计模式打造一个cocos creator的游戏框架----(四)装饰器模式

尽管ECS模式和装饰器模式都允许动态改变对象的行为,但它们的实现方式和目标是不同的。而在装饰器模式中,对象的基本行为是由其类定义的,装饰器只是添加或修改这些行为。此外,ECS模式中的实体并不需要实现与其组件一致的接口,这是它与装饰器模式的另一个主要区别。它通过将对象封装在装饰器对象中来实现这一点,装饰器对象实现了与原对象相同的接口,并在调用原对象的方法之前或之后添加新的行为。:这是所有装饰器类的基类,它定义了一个与抽象组件接口一致的接口,这样它就可以装饰所有的具体组件。:这是抽象组件的具体实现。

aixh1985的博客 2883

Cocos 入门教程

环境预准备 Cocos Creator v2.0.9 https://www.cocos.com/creator 建议使用2.0.9,高版本可能不稳定 工具篇 除了cocos creator,还是有其他的必要工具的 VS Code 比如 VS Code 就必不可少的代码编辑器 下载: https://code.visualstudio.com/ TexturePackerGUI 非必须。 该工具用...

NikoKVCS的专栏 8093

10分钟上手开心消消乐开发:Cocos Creator环境搭建与快速开始

开心消消乐是一款使用Cocos Creator开发的经典三消游戏,通过本文的快速指南,即使是新手也能在10分钟内完成开发环境搭建并运行项目,体验游戏开发的乐趣。 ## 一、准备工作:安装必要工具 ### 1.1 安装Cocos Creator 前往Cocos官网下载并安装最新版Cocos Creator,推荐使用v3.0以上版本以获得最佳兼容性。安装过程中保持默认设置即可,无需额外配置。 #

gitblog_01030的博客 1137

Cocos creator 使用 Vscode 2017

Cocos creator 使用 Vscode 2017一般方法 迄今为止,在开发组工作人员的努力工作下,Cocos  Creator编辑器不断完善,推出了新的1.8.0版本。目前,Cocos Creator内置的代码编辑器功能不完善,只适合快速浏览和做少量编辑的需要。对程序员来说,我们需要更成熟完善的代码编辑环境。所以已经被开发组抛弃了(众多开发者吐槽不好用)。 Visual Studio

忧桑该小绵羊 1万+

Cocos Creator制作第一个游戏(笔记

快速导航事先声明项目资源过程创建场景使用背景等资源添加代码创建脚本添加跳跃功能添加左右移动功能使主角有限制地操控制作星星 事先声明 在下刚刚接触Cocos Creator,并随着官方教程进行游戏制作。关于本文章“制作第一个游戏”于官方处已说明得非常清楚易懂。本文章完全是自己相想要做一个笔记。姑且算是吧 这里放上官方原网址:快速上手:制作第一个游戏。 项目资源 此为官方资源下载地址: 初始资源:里...

aFAKEz的博客 3502

自己毕设的Cocos Creator小分析设计

开发小分析可行性分析需求分析功能小分析游戏界面模块设计游戏功能模块设计系统设计实现基本设计实现 参考部分网络数据 本款游戏软件主要用来消遣娱乐。因此规则上要求简单容易上手。故确定为横版的闯关类游戏。同时优化游戏兼容性使之可以在Android平台上运行,这样就能满足广大群众的需求。 可行性分析 可行性研究的目的是检测是否可以在最短的时间内以最低的成本解决问题。验证本质上是系统分析和设计过程的更高层次的抽象过程。 1.技术可行性:使用Windows10操作系统,对计算机配置没有太高要求,一般学校或者个人电脑安装

weixin_43887242的博客 2286

从0开始的游戏编程——Cocos Creator开发

下面我们只是对 Cocos Creator编辑器进行一个初步介绍,进一步具体的可以看官方手册。

codezhu的博客 1295

如何在Cocos Creator中集成DragonBonesJS:快速实现高质量动画效果

想要为你的Cocos Creator游戏添加流畅的2D骨骼动画吗?DragonBonesJS正是你需要的解决方案!作为一款强大的TypeScript/JavaScript运行时库,DragonBonesJS能够帮助开发者轻松创建高质量的2D骨骼动画效果。无论你是游戏开发新手还是经验丰富的开发者,本教程都将带你快速掌握在Cocos Creator中集成DragonBonesJS的完整流程。 ##

gitblog_00100的博客 708

cocos creator 笔记-插屏设置、应用图标、构建发布

cocos creator 笔记-插屏设置、应用图标、构建发布

暮雪的博客 3915

Cocos Creator终极指南:5步快速掌握免费开源游戏引擎

想要免费、开源且功能强大的跨平台游戏开发工具吗?Cocos Creator正是你寻找的答案!作为一款完整的2D/3D游戏开发引擎,Cocos Creator让游戏创作变得简单高效,无论是新手开发者还是专业团队,都能轻松打造高性能的互动体验。本文将带你从零开始快速掌握这个强大引擎的核心功能和使用技巧。 ## 为什么选择Cocos CreatorCocos Creator是一个完全免费的开源

gitblog_01196的博客 714

cocos creator 知识点,切换场景

最近在学习cocos creator的相关内容,刚开始学习,对每天的东西做一个总结 场景切换:cocoscretor内置的场景切换是没有效果的,就是没有2dx里的过渡动画,要实现动画效果得自己写(我不会)。 切换操作如下 第一,选中要触发场景切换的东西,它可以是一个精灵,可以是一个label,都行 第二,给这个东西添加一个用户脚本组件 脚本代码如下 cc.Class({ extends:...

qq_41742289的博客 3508

cocos creator 笔记-Asset Bundle

cocos creator 笔记-Asset Bundle

暮雪的博客 1722

Cocos Creator 学习笔记(一)

学习背景:和同学参加了学校的实验室开放项目,决定自己开发游戏。指导老师推荐了Cocos Creator作为开发工具,让我们在暑假抽空学习语法和基础知识(实际上摸了一个半月的鱼) 剩余的半个月在开学项目汇报的压力下,囫囵地看了遍creator的开发文档,学习了最最基础的JS语法,找了好多大佬的文章来看,几个同学东拼西凑好歹搞出了一个DEMO,安全度过汇报。在学习文章中发现大佬不愧是大佬,写文...

D____X0的博客 1379

从零开始掌握Cocos Creator 3D游戏引擎:跨平台游戏开发的终极指南

Cocos Creator作为新一代游戏开发工具,为开发者提供了完整的2D和3D功能,同时提供了直观、低成本且协作友好的工作流程。这个免费开源的跨平台游戏引擎让数百万开发者能够轻松创建高性能、引人入胜的2D/3D游戏和即时Web娱乐内容。无论你是游戏开发新手还是有经验的开发者,掌握Cocos Creator都能让你轻松实现创意,将游戏发布到Windows、Mac、iOS、Android、Web以及

gitblog_00460的博客 815

cocos creator】进阶笔记

碰撞检测原理,自己去实现碰撞检测怎么实现。3d物理引擎(碰撞,射线,移动,旋转)creator 生命周期函数,

烧仙草奶茶的博客 476
上一篇: adword easy-dex wp
下一篇: AL 逆向解包:live2d, spine 动态立绘,背景图
dilvx
博客等级 码龄5年 886粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值