当前位置: 首页 > news >正文

Cocos Creator 3.8 2D 游戏开发知识点整理

目录

Cocos Creator 3.8 2D 游戏开发知识点整理

1. Cocos Creator 3.8 概述

2. 2D 游戏核心组件

(1) 节点(Node)与组件(Component)

(2) 渲染组件

(3) UI 组件

3. 动画系统

(1) 传统帧动画

(2) 动画编辑器

(3) Spine 和 DragonBones

4. 物理系统

(1) 物理引擎

(2) 刚体(RigidBody2D)

(3) 碰撞检测

5. 输入系统

(1) 触摸与鼠标事件

(2) 键盘输入

(3) 摇杆控制

6. 资源管理

(1) 动态加载资源

(2) 预加载资源

(3) 图集优化

7. 网络与数据存储

(1) 网络请求

(2) 本地存储

8. 性能优化

(1) Draw Call 优化

(2) 物理优化

(3) 资源优化

总结


Cocos Creator 3.8 2D 游戏开发知识点整理

1. Cocos Creator 3.8 概述
  • 基于 TypeScriptJavaScript 开发
  • 采用 ECS(实体-组件-系统)架构,便于管理游戏对象
  • 提供 WebGLCanvas 渲染模式,兼容 Web、原生、小游戏平台
  • 支持 Box2D 和 Cannon.js 物理引擎

2. 2D 游戏核心组件
(1) 节点(Node)与组件(Component)
  • Node(节点):游戏对象的基本单位,可包含多个组件
  • Component(组件):添加到节点上的功能模块,如 Sprite、Collider、RigidBody
(2) 渲染组件
  • Sprite(精灵):渲染 图片精灵帧动画
  • Label(文本):用于显示游戏内文字
  • Graphics(绘图):绘制自定义图形,如血条、特效
  • Mask(遮罩):用于实现裁剪效果
  • SpriteAtlas(图集):优化加载多个精灵
(3) UI 组件
  • Button(按钮):响应点击事件
  • Layout(布局):自动排列子节点
  • ScrollView(滚动视图):实现滚动列表
  • ProgressBar(进度条):如血条、加载进度

3. 动画系统
(1) 传统帧动画
  • SpriteFrame Animation:通过精灵帧序列切换,实现动画
(2) 动画编辑器
  • Animation 组件:支持关键帧动画
  • 支持插值计算:位置、旋转、缩放、透明度
  • 支持曲线控制(贝塞尔曲线)
(3) Spine 和 DragonBones
  • Spine:骨骼动画,适合复杂角色
  • DragonBones:阿里出品,适用于国风游戏

4. 物理系统
(1) 物理引擎
  • 内置 Box2D(2D 物理),可实现重力、碰撞、反弹
  • Cannon.js(3D 物理),可用于部分 2D 游戏
(2) 刚体(RigidBody2D)
  • 动态(Dynamic):受力影响,如角色
  • 静态(Static):不会移动,如地面
  • 运动(Kinematic):不受物理影响,如电梯
(3) 碰撞检测
  • Collider 组件:如 BoxCollider、CircleCollider、PolygonCollider
  • 监听碰撞回调onBeginContactonEndContact

5. 输入系统
(1) 触摸与鼠标事件
  • cc.Node 事件touchstarttouchmovetouchend
  • 系统事件mousedownmousemovemouseup
(2) 键盘输入
  • systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, callback, this);
(3) 摇杆控制
  • 监听 Touch Move 事件,计算角度,控制角色方向

6. 资源管理
(1) 动态加载资源
  • resources.load("路径", cc.SpriteFrame, (err, spriteFrame) => {});
  • assetManager.loadRemote("远程资源地址", callback);
(2) 预加载资源
  • resources.preload("路径", cc.SpriteFrame);
(3) 图集优化
  • 使用 SpriteAtlas 合并多个小图,减少 draw call

7. 网络与数据存储
(1) 网络请求
  • HTTP 请求:使用 cc.assetManager.loadRemote() 加载远程资源
  • WebSocket:适用于实时多人游戏
(2) 本地存储
  • cc.sys.localStorage:存储 JSON 数据、用户配置
  • FileSystem API(原生端):存储本地文件

8. 性能优化
(1) Draw Call 优化
  • 使用图集(SpriteAtlas):减少批量绘制的开销
  • 合并 UI 组件:避免 UI 频繁重绘
(2) 物理优化
  • 减少碰撞检测数量
  • 使用简单碰撞体(Box 代替 Polygon)
(3) 资源优化
  • 压缩图片(TinyPNG、TexturePacker)
  • 合理使用对象池(Object Pool) 复用节点

总结

Cocos Creator 3.8 提供了完整的 2D 游戏开发工具,包括 节点系统、动画系统、物理引擎、UI 系统、输入系统、资源管理 等。开发 2D 游戏时,需要合理利用 图集、动画优化、对象池、碰撞优化 来提升性能。

http://www.lryc.cn/news/529020.html

相关文章:

  • 梯度提升用于高效的分类与回归
  • 【单细胞第二节:单细胞示例数据分析-GSE218208】
  • 设计模式 - 行为模式_Template Method Pattern模板方法模式在数据处理中的应用
  • 新春登蛇山:告别岁月,启航未来
  • hive:基本数据类型,关于表和列语法
  • 安装最小化的CentOS7后,执行yum命令报错Could not resolve host mirrorlist.centos.org; 未知的错误
  • 图论——spfa判负环
  • 软件工程概论试题三
  • 21.3-启动流程、编码风格(了解) 第21章-FreeRTOS项目实战--基础知识之新建任务、启动流程、编码风格、系统配置 文件组成和编码风格(了解)
  • 未来无线技术的发展方向
  • Qt5离线安装包无法下载问题解决办法
  • qt-C++笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别
  • doris:导入时实现数据转换
  • 新版231普通阿里滑块 自动化和逆向实现 分析
  • 如何构建树状的思维棱镜认知框架
  • openRv1126 AI算法部署实战之——ONNX模型部署实战
  • Vue 组件开发:构建高效可复用的前端界面要素
  • Vue.js组件开发-实现全屏平滑移动、自适应图片全屏滑动切换
  • 水果实体店品牌数字化:RWA + 智能体落地方案
  • DeepSeek模型:开启人工智能的新篇章
  • Kubernetes 环境中的自动化运维实战指南
  • 深入解析 C++17 中的 std::not_fn
  • unity实现回旋镖函数
  • 想品客老师的第九天:原型和继承
  • 力扣【416. 分割等和子集】详细Java题解(背包问题)
  • 2025年AI手机集中上市,三星Galaxy S25系列上市
  • 为AI聊天工具添加一个知识系统 之79 详细设计之20 正则表达式 之7
  • 理解PLT表和GOT表
  • 6 年没回老家过年了
  • 【原创改进】SCI级改进算法,一种多策略改进Alpha进化算法(IAE)