
Cocos2dx
文章平均质量分 94
XuTianXiang_JIANGSU
这个作者很懒,什么都没留下…
展开
-
Cocos2d-x基础知识相关
cocos2d-x采用的内存管理机制 1)c++中的智能指针(实则就是将动态分配内存与自动变量关联,借助自动变量的自动释放来释放动态分配内存)在管理数据内存方面的优缺点; 2)如何管理引用计数,如对于node,何时retain,何时release; 3)智能指针实现方式; - ...原创 2018-10-30 21:00:01 · 375 阅读 · 0 评论 -
Cocos2dx CCLabel
本文对CCLabel的实现进行相关介绍:1 一般性绘制流程绘制流程与之前介绍的Render常规性流程保持一致,其入口为visit:void Label::visit(Renderer *renderer, const Mat4 &parentTransform, uint32_t parentFlags){ //... if (_systemFontDir...原创 2018-06-04 20:36:19 · 1866 阅读 · 0 评论 -
Cocos2dx Render绘制系统
1 绘制系统概览cocos-2dx 3.0之前,元素的绘制逻辑分布在元素内部的draw()方法内,因此紧密地依赖UI树的遍历,这种捆绑式的架构通常难易优化。为什么呢?因为UI树的遍历顺序直接决定了元素的绘制顺序,我们便无法通过优化绘制序列来提升绘制效率。实际上,绘制序列应当与UI树的遍历序列分离。 3.0之后的版本对此进行了重构。新的绘制系统架构完成了以下优化目标:将绘制系统的具体实现...原创 2018-05-23 16:10:56 · 1407 阅读 · 1 评论 -
lua 自定义控件及动画控制(3) ---- 实现一系列游戏中的消息公告提示
1 消息上漂提示实现方法 创建一个Layer图层并加载至场景中;从消息队列中选择队头消息,加载至Layer并同时移出队列;利用MoveTo方法将Layer向上移动一定长度(此时Layer中所有子节点消息都随之向上移动),之后将Layer所有子节点位置向上移动同等长度并将Layer位置重置成初始位置,之后递归这一动作,直到消息队列为空;当向消息队列中添加消息时需要判断消息处理的递归动作原创 2018-01-29 10:14:19 · 655 阅读 · 0 评论 -
cocos2dx - lua 自定义控件及动画控制(2) ---- 基于Action实现循环滚动效果
1. lua层简化版动画系统cocos2dx中的Action系统能实现一般性的动画控制。但是对于一些特殊的动画需求,如何处理?一种方法是在C++层派生新的Action子类,继承原有机制,使用方法与一般Action无异。但很多时候修改或增加C++层代码并不方便,能否直接在lua层定制属于自己的Action?答案是肯定的,但是lua层的实现不能简单继承c++层的Action,因为它无法修改Acti原创 2017-11-21 10:28:08 · 1133 阅读 · 0 评论 -
Cocos2dx 异步加载纹理
异步加载资源过程 异步加载的执行过程主要在addImageAsync函数中: 判定当前路径对应的纹理是否已经加载,如果未加载,为该纹理创建一个AsyncStruct 数据结构存放该纹理数据,并加入至_requestMutex请求队列中。在创建的用于专门解析纹理的新线程LoadImage中,请求队列中的数据将被逐个解析至AsyncStruct .image中并加入已解析队列_responseQueu原创 2017-10-19 12:13:57 · 1108 阅读 · 0 评论 -
Cocos2dx Action动画机制
1 动画执行过程cocos中的动画通过节点执行,如: node:runAction( cc.Sequence:create(cc.DelayTime:create(1.4),cc.CallFunc:create(removeThis))) runAction方法将动画添加至动画管理器中。动画管理器将节点的动画信息全部关联至element中,并以节点作为key,element作为value生成ha原创 2017-10-11 17:53:07 · 2034 阅读 · 0 评论 -
Cocos2dx 事件响应机制(2):事件处理机制
1 事件的工作机制 图1 传统事件系统如上图,模块A为事件触发者,模块B为事件响应者。A的实现依赖于模块B的实现,如果B的实现发生变化,A也可能需要作出相应调整。Cocos用订阅者模式将事件的触发者和响应者分开。触发者向一个公共的事件分发器发送一个事件消息,事件响应者向事件分发器订阅一个特定类型的消息来响应事件。以图1为例,B创建一个订阅者(ListenerB)并将此订阅者注册至事件分发器中,其原创 2017-09-27 18:59:40 · 1195 阅读 · 0 评论 -
lua 自定义控件及动画控制(1) ---- 实现自定义滑动控件
1 lua控件基类_class = {}local UIBase = class("UIBase",cc.Node)function UIBase:ctor() -- 触摸监听事件 local listener = cc.EventListenerTouchOneByOne:create() listener:registerScriptHandle原创 2017-09-14 18:26:02 · 1860 阅读 · 0 评论 -
LUA 文本编辑相关
1 文本动画播放实现文本打字机动画播放。function TestNode:createLabel() local label = ccui.Text:create() label:setString("this is a test. \n a animation test") label:setFontSize(30) label:ignoreContentAdaptWithSi原创 2017-08-29 17:32:54 · 757 阅读 · 0 评论 -
Cocos2dx 事件响应机制(1): GLView
CCGLView.cpp:部分代码注释如下,由于作者是在windows下阅读的代码,因此这里的CCGLView的路径为【 cocos2d\cocos\platform\desktop\CCGLView.cpp 】:// GLFWEventHandler/*定义了一个管理G转载 2017-05-25 17:13:54 · 1771 阅读 · 0 评论 -
lua 协程 | 协程实现消息机制(事件队列轮询处理机制)
Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。游戏中,有时在处理消息时,希望一条一条消息独立处理(独立堆栈),且希望每条消息在不同场景内等待式逐步进行(如一个场景消息处理完,挂起,经过100ms再进行当前消息下一场景的处理),协程能够完成这一过程。下面提供一种实现方案。local ms原创 2017-05-10 12:06:32 · 5338 阅读 · 0 评论 -
lua 文件路径 字符串处理 数据结构 正则表达式
1 文件路径相关处理-- 生成父目录下自己的文件路径rootpath = ... --文件当前路径dotindex = string.find(rootpath, "%.%w+$") --返回路径中最后一个点号位置parentpath = string.sub(rootpath, 1, dotindex-1) --提取上一级文件目录mypath = string.format(原创 2017-03-20 15:26:19 · 1709 阅读 · 0 评论