![](https://img-blog.csdnimg.cn/20191011103946488.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
cocos
cocos2dx c++ lua js开发
cocos creator
cocos creator 3d
南山搬砖道人
热爱技术,热爱和平
展开
-
GLSurfaceView
用户可以在GlSurfaceView上自定义渲染器(render)并在独立的线程中运行,内置一个surface(一块内存)能直接在android view上排版,它管理的egl display可以让opengl 把内容渲染在suerface上。GLSurfaceView是一个视图,继承至SurfaceView,它内嵌的surface专门负责OpenGL渲染。GLSurfaceView提供了下列...原创 2019-10-12 17:07:52 · 381 阅读 · 0 评论 -
cocos2dx引用计数机制
title: cocos2dx 引用计数机制comments: truedate: 2019-01-07 18:49:23tags:cocos2dxcategories:cocos2dxautorelease和release的区别release是立即释放引用计数,如果到达0,对象被销毁。autorelease是延迟释放,是为了更好管理内存产生的。关于Ref一个Ref对...原创 2019-01-07 18:54:01 · 788 阅读 · 0 评论 -
cocos2dx自动批绘制的条件
title: cocos2dx自动批绘制的条件comments: truedate: 2019-01-07 18:56:49tags:cocos2dxcategories:cocos2dx为什么必须要相同纹理、相同混合函数、相同shader?要满足Auto-batching,就必须有这三个条件,这是为什么呢?我们回到之前的代码,在调用节点的draw函数时,调用了QuadC...原创 2019-10-11 09:38:18 · 309 阅读 · 0 评论 -
cocos2dx灰度shader
灰度shader最近在学习shader,就把cocos2d-x 3.x版本中的很简单也很常用的灰度shader拿出来学习一下。#ifdef GL_ESprecision mediump float; // ES版本的精度限定符,精度变低后可以提高效率#endifvarying vec4 v_fragmentColor;varying vec2 v_texCoord;void ma...原创 2019-01-09 18:18:39 · 295 阅读 · 0 评论 -
cocos2dx模糊shader
模糊效果在游戏中经常会用到,有的为了突出前景会把背景给模糊化,有的是因为一些技能需要模糊效果。模糊是shader中较为简单的一种应用。cocos2dx 3.x给的demo中,就有sprite的模糊的效果。先说下这个模糊算法的大致思路,我们在片段着色器中可以得到当前像素点的颜色值,要想让这个颜色变得模糊,就要让它与它周围的像素点的颜色稍微接近一点,那么我们就需要拿到这个像素点周围的像素点的颜色值,...原创 2019-01-09 18:26:59 · 797 阅读 · 0 评论 -
cocos2dx描边shader
Cocos2d-x 3.x的label使用了freetype字体引擎(http://www.freetype.org/),可以很轻松的实现描边和阴影效果。所以本篇文章只针对于sprite来实现描边效果。varying vec4 v_fragmentColor; // vertex shader传入,setColor设置的颜色varying vec2 v_texCoord; // 纹理坐标un...原创 2019-01-09 18:33:43 · 687 阅读 · 0 评论 -
cocos2dx使用shader
着色器认识.vsh,.fsh 这两个文件在被编译和链接后就可以产生可执行程序与GPU交互。.vsh 是 vertex shader,用与顶点计算,可以理解为控制顶点的位置,在这个文件中我们通常会传入当前顶点的位置,和纹理的坐标。.fsh是片段shader,或者叫片元shader。在这里面我可以对于每一个像素点进行重新计算。.vsh和.fsh在opengl 渲染的流程着色器对象关联着色器...原创 2019-01-09 18:48:07 · 609 阅读 · 0 评论 -
cocos2dx中毒冰冻shader
中毒效果#ifdef GL_ES precision mediump float; #endif uniform sampler2D u_texture; varying vec2 v_texCoord; varying vec4 v_fragmentColor; void main(void) { gl_FragColor = text...原创 2019-01-09 19:05:32 · 1302 阅读 · 5 评论 -
cocos2dx中有几条线程
Android UI线程什么是UI线程当应用启动,系统会创建一个主线程(main thread),这个主线程负责向UI组件分发事件(包括绘制事件),也是在这个主线程里,你的应用和Android的UI组件发生交互。所以main thread也叫UI thread也即UI线程。系统不会为每个组件单独创建线程,在同一个进程里的UI组件都会在UI线程里实例化,系统对每一个组件的调用都从UI线程分发出...原创 2019-10-11 10:06:45 · 441 阅读 · 0 评论 -
cocos2dx剪切板
本文是cocos2dx lua为例子, cocos creator js也是一样的只是桥接代码不同罢了android 平台剪切板主要考虑ui线程和gl线程的问题//设置剪切板内容 public static void setClipBoard(final String strName) { if(strName.trim().equals("")){ return; ...原创 2019-10-11 11:23:12 · 391 阅读 · 0 评论 -
cocos2dx Event机制
title: cocos2dx Event机制comments: truedate: 2019-01-07 18:34:51tags:cocos2dxcategories:cocos2dx基本机制事件机制类似观察者模式。EventListener 事件监听者,封装事件处理代码,包含事件会回调。事件包含时间信息。EventDispatcher 事件分发者,管理分发事件。...原创 2019-01-07 18:48:07 · 315 阅读 · 0 评论 -
cocos2dx Action机制
依赖scheduler更新机制。1.Action它通过在一段时间内对Node元素的某些属性进行插值计算。然后依赖时间更新去更新属性。依赖step()->update()2.Action的管理是放在ActionManager 的hash表中,通过target作为key action防止在hash 节点的数组中。ActionManager 添加到动作队列,并通过调用startWithTa...原创 2019-01-07 18:29:42 · 465 阅读 · 0 评论 -
cocos2dx渲染框架
title: cocos2dx渲染架构comments: truedate: 2018-12-17 20:13:14tags:cocos2dxcategories:cocos2dx2dx的时代UI树便利和渲染是没有分开的,遍历UI树的时候就渲染.3dx版本为了分离了ui树的遍历和渲染,先遍历生成渲染命令发到渲染队列,之后遍历渲染命令队列开始渲染.这样做的好处是渲染命令可以重用...原创 2019-01-03 17:23:40 · 628 阅读 · 0 评论 -
cocos2dx性能优化
游戏性能应该在设计编码时就需要认真对待,在按照常规处理之后需要使用工具查找游戏性能瓶颈,之后针对处理.主要的性能问题所在基本是GPU,CPU.经常涉及到游戏逻辑优化,优化效果的指标:帧率、内存、drawcall.查找 GPU 性能瓶颈的工具使用 Xcode OpenGL ES Profiler。文档链接地址如果你想 profiling 特定 GPU 的移动设备的图形性能,我们可以使用...原创 2019-01-03 17:25:28 · 1036 阅读 · 0 评论 -
cocos2dx热更新机制
游戏脚本资源配置的更新,可以在游戏启动的时候,或者在游戏内更新。cocos2dx更新需要注意的是Lua文件的重新加载问题和纹理的重新加载的问题,纹理的加载需要注意合图文件的plist重新加载.游戏内更新需要注意的是更多需要小心处理精灵帧缓存纹理缓存和动画缓存基本原理热更新实现了项目资源和脚本文件的动态更新。当工程有新的改动时,用户无需重新下载完整的安装包,而是通过对比本地与最新的版本信息,仅下...原创 2019-01-07 15:40:29 · 1292 阅读 · 0 评论 -
cocos2dx资源管理
资源管理其实主要涉及lua脚本和图片资源.由于lua资源的gc和lua对c++对象的绑定和cocos2dx的各种缓存加上cocos2dx的autoreleasepool机制,是资源管理工作和内存管理需要同步进行,本文就先说cache然后内存.cocos2dx在创建一个对象的时候是autorelease放入和当前的pool,帧渲染完成之后release一次,对于资源来说就是Sprite关联Text...原创 2019-01-07 16:01:03 · 1025 阅读 · 0 评论 -
cocos2dx多分辨率支持
最好的对多分辨率支持的方案是不处理分辨率,应用程序按照一个预定义的分辨率进行设计,低阶游戏引擎统一处理分辨率的缩放,这个预设的分辨率就是设计分辨率.设计分辨率缩放策略setDesignResolutionSize可以设置设计分辨率和缩放策略,目前的缩放策略主要有EXACT_FIT: 充满屏幕设计分辨率直接缩放为屏幕分辨率,会变形NO_BORDER: 充满屏幕,较宽的部分被裁切,设计分辨率...原创 2019-01-07 16:49:49 · 261 阅读 · 0 评论 -
cocos2dx网络模块
title: cocos2dx网络模块comments: truedate: 2019-01-04 18:55:15tags:cocos2dxcategories:cocos2dxcocos2dx除了curllib和websocket其他的没有封装好用的网络库,尤其是使用socket的时候得自己分装网络层。网络层有哪些东西呢或者说我们要连接服务器收发数据需要怎样的流程?##...原创 2019-01-07 17:17:59 · 1239 阅读 · 0 评论 -
cocos2dx接入sdk的通用方案
使用jni java反射机制 和callfuncjni:java c++相互调用。反射机制:主要使用Class Filed Constructor来动态的获取类的方法属性构造器进一步调用对象的方法属性以及构造对象。callfunc:函数调用。java->c++ :通过jni调用CPPNativeCallHandler 调用c++的 NDKHelper::handleMessage ...原创 2019-01-07 17:57:55 · 2445 阅读 · 0 评论 -
cocos2dx接入第三方so
title: cocos2dx接入第三方的socomments: truedate: 2019-01-07 17:58:40tags:cocos2dxcategories:cocos2dxAndroid平台添加第三方.so1.将.so放到prebuild目录下。2.修改mk.例如添加的库文件是:libfmod.so。LOCAL_PATH := $(call my-d...原创 2019-01-07 18:01:45 · 557 阅读 · 0 评论 -
cocos2dx schedule机制
是cocos2d-x核心的一块,负责调度执行,更新动作等。如何计时?Timer保存了调度任务的 时间线 重复次数 事件间隔 延迟等数据。每帧更新后Timer做事件累加,根据时间线去触发或者取消更新回调。Scheduler有两种添加更新的机制自定义更新根据target的不同Ref和void,分为两种。一种是TimerTargetCallback一种是TimerTargetSelect...原创 2019-01-07 18:23:43 · 627 阅读 · 0 评论