
cocoscreator
文章平均质量分 84
houjia159
这个作者很懒,什么都没留下…
展开
-
cocos creator主程入门教程(十一)—— 有限状态机和行为树
本篇介绍有限状态机和行为树。有限状态机用于有限的状态下的AI,由于同时只能处于一个状态,多个状态需要多个有限状态机,一般用于简单的AI行为。行为树是基于固定行为,通过遍历树来决定采用哪种行为。行为的设计和执行采用解释器模式,由策划设计数据,程序解析执行,行为组合的灵活性高,比较适合剧情NPC。但当树比较深、分支比较多时,遍历的效率就需要考虑优化。一般我们认为有限状态机执行的性能优于行为树,但不能胜任复杂、灵活的AI设计。而行为树则比较适合复杂、灵活的AI设计。先介绍下有限状态机。考虑在一个类似《刀.转载 2020-09-07 16:53:37 · 1430 阅读 · 0 评论 -
cocos creator主程入门教程(十)—— A*寻路
这一篇介绍A*寻路算法。在RPG、SLG、模拟经营类游戏,有需要给角色寻路的需求,一般寻路我们采用A*寻路算法,A*寻路算法是一种广度优先启发性算法。先说说什么叫广度优先。搜索分为广度优先和深度优先,主要体现在对节点的展开上。深度优先一直往一个方向查找,如果没办法查找下去,在当前节点改变方向继续查找,直到找到终点。如果无法继续查找,就回退上一格重复操作。广度优先把当前节点放入待探索列表,循环从待探索列表里取出节点进行展开,直到找到终点。如果待探索列表为空,说明没有路可走。启发性指算法在待探索列表里取转载 2020-09-07 16:33:14 · 1375 阅读 · 0 评论 -
cocos creator主程入门教程(九)—— 瓦片地图
这一篇介绍瓦片地图,在开发模拟经营类游戏、SLG类游戏、RPG游戏,都会使用到瓦片地图。瓦片地图地面是通过一个个地砖拼起来的,又分为45度角和90度角两种。45度角俗称2.5D,每个格子都是菱形,而90度角每个格子都是正方形。瓦片地图一般包括以下图层(不一定同时存在,例如一般RPG游戏没有背景和自由装饰层):1.背景层(大图拼接的背景)2.地形层(瓦片格子拼接的地形)3.建筑层(按瓦片格子摆放的建筑、地面物品、角色)4.自由装饰层(云朵、烟雾)除此以外,还需要提供隐藏的层用于编辑数据转载 2020-09-07 16:27:04 · 1913 阅读 · 0 评论 -
cocos creator主程入门教程(八)—— 代码结构
这一篇简单介绍下代码结构,清晰的代码结构更有利于团队对项目的理解和维护。1.前面我们介绍了一系列基础功能封装,这部分内容可以被不同的游戏重用。这一部分代码都可以放到framework目录下。2.游戏业务代码统一放到game目录下3.平台sdk接入代码放到channel目录下4.数据上报的sdk接入代码放到report目录下。StartCtrl是项目的入口,负责项目的初始化,包括渠道sdk、数据上报sdk设定、游戏初始化。framework目录下面都是一些基础功能。..转载 2020-09-07 16:22:35 · 631 阅读 · 0 评论 -
cocos creator主程入门教程(七)—— MVC架构
这一篇将介绍在游戏客户端常用的架构MVC架构。一个游戏的MVC如下划分:M:1)单例全局的数据中心World,所有游戏模块的数据在World中有入口,2)各个模块自己的数据结构。V:1)通过creator预制体制作的UI界面、场景,2)各个界面显示逻辑的ViewCtrlC:1)全局的MainCtrl,2)各个模块的业务逻辑类ModuleCtrl先介绍M部分。由于一个模块的数据,在其他模块也有访问的需求,例如好友模块,在聊天的时候也需要访问,在排行榜里需要访问。数据应该有一个单例全局的数.转载 2020-09-07 16:21:36 · 1530 阅读 · 0 评论 -
cocos creator主程入门教程(六)—— 消息分发
本篇开始介绍游戏业务架构相关的内容。在游戏业务层,所有需要隔离的系统和模块间通信都可以通过消息分发解耦。例如网络返回通知、数据更新同步到界面等。消息分发基于观察者模式设计。需要处理消息的地方向消息中心注册监听回调,派发消息时,调用消息中心的派发接口遍历该消息的监听队列,调用对应的回调方法。先定义监听回调类型/** * 消息监听回调方法 */export type NotifyListener = (src: any, data: any) => void;通过key-value转载 2020-09-07 16:18:50 · 646 阅读 · 0 评论 -
cocos creator主程入门教程(五)—— 日志系统
这一篇介绍日志系统的设计。一般我们开发一个demo,只会简单的用cocos提供的cc.log打印下日志,方便调试功能。但是要开发一个商业项目,还要考虑怎么收集日志,方便产品上线后定位线上问题。如果线上产品运行出异常时能把当时的上下文日志发到一个文件服务器,有利于分析异常的原因。例如如果有通信数据日志,可以先判断是后端返回数据异常,还是前端逻辑出问题。因此,我会在项目里设计一个统一的日志系统,游戏里所有日志的打印都使用该日志系统进行打印。首先对日志进行分级/** * 日志等级枚举 */expo转载 2020-09-07 16:13:13 · 728 阅读 · 0 评论 -
cocos creator主程入门教程(四)—— 网络通信
前面已经介绍怎样加载资源、管理弹窗。开发一个网络游戏,难免要处理网络通信。有几点问题需要注意:1.服务端为了快速开发可能前期使用http通信,后面再改成websocket/socket。2.同时存在http和websocket/socket通信3.通信数据格式可能需要随时替换为json或protocol buffer,可能需要添加额外头部。4.在新手引导里使用本地数据做模拟,请求不需要发送给后端。5.重连后数据简单同步针对第一、二个问题,我在设计通信模块时会考虑将通信尽量抽象为.转载 2020-09-05 15:33:19 · 1475 阅读 · 0 评论 -
cocos creator主程入门教程(三)—— 资源管理
在初识篇,我介绍过怎样加载prefab。cocos提供了一系列的加载接口,包括cc.loader.load,cc.loader.loadRes,cc.loader.loadResArray,cc.loader.loadResDir。static load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, completeCallback?: Function): void;static loadRes(转载 2020-09-05 15:24:39 · 1157 阅读 · 0 评论 -
cocos creator主程入门教程(二)—— 弹窗管理
我们已经知道怎样制作、加载、显示界面。但cocos没有提供一个弹窗管理模块,对于一个多人合作的项目,没有统一的管理,界面层级容易混乱。作为主程,在项目开始就应该处理好这些问题,将弹窗划分为不同的层次,不同类型的信息显示在不同的层中。下面将讲解怎样设计弹窗堆栈。一般地,从下向上,我会将弹窗划分为以下层:1)内容层,展示游戏相关的信息界面。2)tips层,显示提示性信息界面,例如获得物品的浮窗、网络异常的提示。3)新手引导层,主要显示新手引导的手指、新手提示文本框等。4)alert层,主要显转载 2020-09-05 15:19:33 · 1536 阅读 · 0 评论 -
cocos creator主程入门教程(一)—— 初识creator
我们在cocos creator新建一个Hello TypeScript项目,都会有一个assets/Scene/helloworld.fire文件。使用cocos creator开发游戏时,项目可以只有一个.fire文件。一般地,我会把这个文件夹改名为assets/scene,下面只有main.fire文件:assets/scene/main.fire。双击main.fire文件,在层级管理器可以看到它的结构,根节点是一个Canvas,点击Canvas节点,在右边的属性面板可以看到C.转载 2020-09-05 15:16:06 · 1714 阅读 · 0 评论 -
CocosCreator-如何处理Spine动画的结束回调
CocosCreator提供了很方便的Spine动画接口,我们常常会在播放Spine动画完成后做一些处理,这就需要知道Spine动画播放完成的准确时机。有两种注册结束回调的方法,一是使用 setCompleteListener,它是针对单个动画的,一般使用这个就可以了。示例代码如下:playSpine: function(animName, loop, callback) { ...转载 2019-03-21 11:29:58 · 6753 阅读 · 0 评论