cocos2d-x
文章平均质量分 81
xingxinmanong
这个作者很懒,什么都没留下…
展开
-
【cocos2d-x 源码解析】事件系统
事件是一个“数据体”,由事件类型和携带的数据组成。事件监听器是“处理事件的人”,其存储了相应事件的回调函数,当事件触发时,这些回调函数就会被调用。事件派发器是一个“事件管理者”,它有两个作用,注册事件监听器和派发事件;注册事件监听器就是给监听器关联一个回调函数,派发事件就是找到事件类型对应的监听器,调用其回调函数。事件触发的过程就是事件派发器将事件传给事件监听器,执行事件监听器的回调函数。原创 2018-01-18 11:46:22 · 937 阅读 · 0 评论 -
Cocos2d-x 之 lua 代码加密
lua 代码加密方式很很多种,这里只讲最简单的一种,就是把代码编译成二进制字节码。lua 是一门脚本语言,不需要经过编译就可以使用 lua 解释器来执行;但我们也可以把 lua 代码事先编译成二进制文件,这样就达到了加密的方式。原创 2017-07-28 18:34:21 · 728 阅读 · 0 评论 -
【cocos2d-x 源码剖析】启动窗口
不仅游戏,任何程序都必须有一个启动的入口;几乎每个程序员接触编程的第一个程序都是 HelloWorld 控制台程序,这个最简单的程序的入口就是 Main 函数。接下来就让我们看看 cocos2d-x 创建的游戏是从哪里开始启动的,这里只探讨 win32 程序,其它平台以后有时间再探讨。原创 2017-08-16 17:10:26 · 554 阅读 · 0 评论 -
Cocos2d-x 之使用 Jni
Android 里面有个 jni.h 封装了 java 代码与原生代码交互的功能,cocos2dx 在cocos/platform/android/jni下面有个jniHelper 类是对 jni 的再次封装,使用 jniHelper 能很容易地实现 c++ 代码与 java 互调。C++ 调 JavaAndroid 端没什么特别要做的,只需要把函数定义好就行,函数分静态和实例两种。原创 2017-07-16 17:40:40 · 1450 阅读 · 0 评论 -
Cocos2d-x 之 WebSocket 网络编程
WebSocket 是 HTML5 开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。原创 2017-07-16 17:38:53 · 1458 阅读 · 0 评论 -
Cocos2d-x 之 Http 网络编程
HttpClient 是cocos中的一个 Http 客户端接口,通过 HttpClient 可以很容易都访问 Http 服务端。Http 访问主要有两种方式,Get 和 Post。原创 2017-07-16 17:37:27 · 373 阅读 · 0 评论 -
Cocos2d-x 之简单 UI 及事件
Cocos2d经过几个版本的迭代,UI系统比较多,也比较乱,对于我们初学者来说,不必做到大而全,只需要掌握一种比较常用的就行。这篇文章主要介绍cocos studio中使用的UI系统。原创 2017-07-16 17:32:51 · 2135 阅读 · 0 评论 -
Windows 搭建 cocos2d-x3.x 开发环境及 android 打包
cocos2d版本更新之快及版本之混乱是出了名的。cocos2d打包android apk也是出了名的麻烦。所以,对于我这种新手来说,配置cocos2d-x的安卓环境就是出了名的难。经过两天的折腾,终于搞出了一个方案,虽然算不上最好的方案,但也算是一种比较可行的方案。本文使用的cocos版本是cocos2d-x3.10。话不多说,现在开始。首先,本文所用到的工具我已经上传到网盘,有需要原创 2017-03-15 14:56:43 · 5088 阅读 · 1 评论 -
Cocos2d-x 之帧动画 Animate
写在前面前面分别介绍了精灵Sprite、精灵帧SpriteFrame和2D贴图Texture2D的用法,这篇文章介绍一下帧动画的用法。Animatecocos2d-x中的帧动画是一个动作Animate,它封装一个动画(名词)Animation,然后让精灵执行动作runAction。所以执行动画的精灵和动画里的精灵帧要指向同样的图片集。原创 2017-07-14 10:38:28 · 780 阅读 · 0 评论 -
Cocos2d-x 之使用 TexurePacker+Cocos Studio 协同工作
Cocos Studio 是 cocos2d-x 一个比较好用的编辑器,我们常用它来搭建场景 UI,导出场景文件和资源,然后在代码中直接加载场景文件。一般导出场景文件的时候会连同资源一起导出,场景文件保存了资源的读取方式,游戏启动时会根据这个读取方式正确找到资源并加载。将小图片打包成一张大图片,导出合图和 plist 文件,然后在程序中加载 plist 文件是一种比较常见和可行的方法。原创 2017-08-04 20:44:11 · 3742 阅读 · 1 评论 -
Cocos2d-x 之性能检测
cocos2d-x 中有三个跟 OpenGL 相关的性能指标,游戏运行时显示在左下角;cocos2d-x 默认会显示这些性能指标,可以手动在代码在开启或关闭原创 2017-08-10 11:18:10 · 3017 阅读 · 0 评论 -
Cocos2d-x 之屏幕适配
六种适配方案UNKNOWN 不作任何适配EXACT_FIT 刚好充满整个屏幕,可能会对图像进行拉伸FIXED_WIDTH 以宽度为基准,使宽度刚好充满屏幕,高度以下边为起点随宽度等比例缩放,如果高度不足,则上面会出现黑边,如果高度过大,则上边的内容可能会被裁剪掉FIXED_HEIGHT 以高度为基准,高度刚好充满屏幕,宽度以左边为起点随高度等比例缩放,如果宽度不足,则右边会出现黑边,如果宽度原创 2017-07-14 09:55:28 · 891 阅读 · 0 评论 -
【cocos2d-x】使用 tolua 导出自定义 c++ 类
cocos 目录是 cocos2d-x 引擎的源码(C++),其中 lua-bindings 目录下是导出的脚本语言,包括 js 和 lua;在 lua-bindings 下有个 auto 文件夹,这就是 tolua 生成文件存放的地方。tools 目录下是 cocos2d-x 非常实用的一些工具,包括创建项目、编译项目、运行项目的控制台命令等原创 2017-10-13 15:43:35 · 2026 阅读 · 0 评论 -
【cocos2d-x 源码解析】shader 实现
cocos2d-x 通过 GLProgram,GLProgramCache,GLProgramState 和 GLProgramStateCache 这几个类来管理着色器程序。GLProgram 完成顶点着色器 vertex shader 和 片段着色器 fragment shader 的创建、编译、附加和链接,最后生成一个着色器程序 program;GLPorgramState 是对 GLProgram 的再次封装原创 2017-10-13 14:37:19 · 1884 阅读 · 1 评论 -
【cocos2d-x 源码解析】可滚动容器
UIScrollView 继承自 UILayout,其内部添加了一个容器 m_pInnerContainer,这也是一个 UILayout,所有添加到 UIScrollView 的控件都是添加在这个子容器 m_pInnerContainer 上。UIScrollView 默认注册了触摸事件,拖动 UIScrollView 时移动的是 m_pInnerContainer 容器,这样添加到滚动面板上的所有控件都会同步进行原创 2017-10-13 14:27:09 · 1122 阅读 · 0 评论 -
【cocos2d-x 源码解析】帧动画
帧动画是以序列帧轮放的方式来表现一个动画,就像胶片电影一样,一张张画面进行切换,当切换的间隔足够小时,人眼就看不出中间的间隔,而是一个流畅的视频。cocos2d-x 中的帧动画涉及到三个类 AnimationFrame,Animation 和 Animate。原创 2017-10-13 14:23:31 · 1112 阅读 · 0 评论 -
【cocos2d-x 源码解析】创建 OpenGL 环境
cocos2d-x 是基本 OpenGL 实现的,所以游戏启动之后做的第一件事就是创建 OpenGL 上下文,之后才能进行渲染。在 win32 上,创建 OpenGL context 的过程就是创建一个 OpenGL 窗口,cocos2d-x 使用的是 glfw 库原创 2017-10-27 15:12:40 · 1974 阅读 · 1 评论 -
【cocos2d】使用 shader
使用内置 shader 非常简单,直接通过一个 key 值从 GLProgramCache 缓冲区取到一个 GLProgram,然后设置给 Node 即可;默认 shader 的 key 值在 GLProgram 中定义原创 2017-10-27 15:06:17 · 4706 阅读 · 0 评论 -
【quick-cocos2d-x】动画和粒子
帧动画需要一组的图片序列,用于创建精灵帧,一般是先将图片加载到精灵帧缓冲区,然后创建动画的时候再从缓冲区取原创 2017-09-27 17:50:37 · 923 阅读 · 0 评论 -
【cocos2d】从 cocos2d-x 到 quick
quick 是对 cocos2d-x lua 版本的一次再次封装,cocos2d-x 中的东西到了 quick 上面基本都能用。这篇文章主要讲从 cocos2d-x 转到 quick 需要注意的一些东西。原创 2017-09-27 17:44:12 · 1532 阅读 · 0 评论 -
Cocos2d-x 之精灵帧 SpriteFrame
前面介绍精灵Sprite和贴图Texture2D的时候都有涉及到精灵帧SpriteFrame,这三个的关系可以粗略看成,Texture2D是封装了一张图片的相关信息,SpriteFrame是对Texture2D的再次封装,可用于创建帧动画,而Sprite是对Texture2D和SpriteFrame的再次封装,以实现一个包含图片信息的“角色”,可执行各种动作和交互。原创 2017-07-14 10:31:30 · 5985 阅读 · 0 评论 -
Cocos2d-x 之显示精灵 Sprite
SpriteSprite是cocos2d-x中用来显示图片的主要对象,它的创建有四种方式原创 2017-07-14 10:14:22 · 3483 阅读 · 0 评论 -
Cocos2d-x 之贴图 Texture2D
Texture2D上一节我们介绍了cocos2d-x中的精灵对象sprite,这一节我们再介绍一下另一个跟显示有很大关系的对象,贴图对象Texture2D。 Texture2D有四种创建方式,从精灵对象得到贴图,从精灵帧对象得到贴图,从贴图缓冲区得到贴图和异步加载贴图,下面分别介绍。原创 2017-07-14 10:21:01 · 4596 阅读 · 0 评论 -
Cocos2d-x 之动作 Action
Cocos2d中的动作主要分为两大类,瞬时动作Instant和持续动作Interval。原创 2017-07-13 18:58:12 · 500 阅读 · 0 评论 -
Cocos2d-x 之场景切换
Scene前面说过cocos2d-x把游戏划分为一个个场景,场景的调入和切换由全局导演Director来完成。原创 2017-07-13 18:54:48 · 851 阅读 · 0 评论 -
Cococs2d-x 之文件操作
字符串操作cocos 中用到三种字符串,C 字符串char*,C++ 字符串std::string和cocos定义的字符串。 C 字符串是最基本的字符串,C++ 字符串是对 C 字符串的二次封装,cocos 字符串是对 C 和 C++ 字符串的再次封装,它继承 Ref 和 clonable,在 cocos 中是一个对象,并引入计数引用技术。原创 2017-07-13 18:47:31 · 690 阅读 · 0 评论 -
Cocos2d-x 之调度器 Scheduler
Cocos中有三种调度器,默认调度器、自定义调度器和单次调度器。默认调度器 scheduleUpdate游戏每一帧会调用update方法一次,使用 unScheduleUpdate来移除调度器。自定义调度器 schedule可手动指定刷新的频率,使用unSchedule来移除调度器。原创 2017-07-13 18:18:49 · 638 阅读 · 0 评论 -
Cocos2d-x 之 HelloWorld
Cocos2d-x 是基于 OpenGL 实现 的,游戏启动起点是 Cocos2d 中定义的程序类 Application,在每个 cocos2d 项目创建时,引擎会自动给我们创建一个 AppDelegate 类,这个类就是继承 Application 类的,游戏启动就是从这个类开始的,我们在这个类里初始化 OpenGL,一些基本设置和创建一个场景并运行。原创 2017-07-13 17:55:47 · 303 阅读 · 0 评论