cocos2d-x
文章平均质量分 65
keep_moving_cqu
每天晚上疲劳的睡在床上时才感觉真真切切地过了一天人生最重要的不仅是努力还有方向压力不是有人比你努力而是比你牛叉几倍的人依然比你努力即使看不到未来即使看不到希望也依然相信自己错不了自己选的人生错不了第二天叫醒我的不是闹钟其实还是梦想
展开
-
cocos2d 一个坑爹的内存泄露
看以下事例代码:auto node1 = Sprite::create("CloseNormal.png");node1->setName("node1");auto action1 = ScaleTo::create(1.0,0.5);auto node2 = Sprite::create("CloseNormal.png");node2->runAction(action1);原创 2015-11-17 22:45:20 · 5963 阅读 · 0 评论 -
Lua注册回调到C++
思路像所有语言一样,绑定回调主要是执行的任务执行到特定情形的时候,调用对用回调方法。 本文也一样,Lua注册回调到C++的核心思路是,当C代码执行到特定特定情形的时候,调用Lua的方法。我这里使用的是用lua_stack直接调用lua的方法,没有使用Cocos2d-x封装的那个dispatcher,因为熟悉那个格式太墨迹了。主要步骤如下转载 2015-11-26 22:12:00 · 2022 阅读 · 0 评论 -
图片Premultiplied Alpha到底是干嘛用的
Premultiplied Alpha 这个概念做游戏开发的人都不会不知道。Xcode 的工程选项里有一项 Compress PNG Files,会对 PNG 进行 Premultiplied Alpha,Texture Packer 中也有Premultiplied Alpha 的选项。那么问题来了,Premultiplied Alpha 是什么呢?我被这个问题困惑了很久,之前搜到过 Nvi转载 2016-03-07 10:09:20 · 12995 阅读 · 2 评论 -
如何在编译cocos2d项目加入自己的脚本
COCOS2D-CONSOLECocos2d-consoleOverviewRequirementSetup EnvironmentUsageAttentionsHow to add commandAdd custom steps during compilingAdvanced FeaturesContributing转载 2016-03-22 11:29:27 · 1607 阅读 · 0 评论 -
cocos2d android分析之-libcocos2dlua.so库
首先把so动态库文件 编译出来(通过NDK),然后再 拷贝到android的工程里 libs/armeabi/下,如果libs/armeabi 不存在,那就自己创建,最后用eclipse编译项目,这样将自动把so文件打包到apk里;eclipse在打包的时候会根据文件名的命名规则(lib****.so)去打包so文件,开头和结尾必须分别为“lib”和“.so”,否则是不会打包到apk文件中的。转载 2016-04-05 16:23:09 · 13701 阅读 · 0 评论 -
cocos2d tolua C++对象使用lua对象的变量,函数
C++对象绑定到lua通常是创建一个userdata用来存放cpp对象。在tolua库中维护了一张表:tolua_ubox表,它是个弱表,用来缓存所有cppobj的ptr->userdata映射。userdata对象的生成过程和cpp对象到userdata的映射的生成。void tolua_pushusertype_internal (lua_State* L, void* value原创 2016-03-13 20:07:58 · 2338 阅读 · 0 评论 -
在cocos2d-x中使用RTTI
Android NDK从r5b版本开始有官方支持的STL了,有一个crystax版本早已经支持。官方的支持有两个版本一个是gnu的,一个是stlport。如果你需要在你的NDK程序中使用STL,那么需要在Application.mk文件中添加一个选项,就是APP_STL := stlport_static。 其中APP_STL的取值有以下四种: system --> 系统默认的最小支持的转载 2016-04-11 22:46:48 · 537 阅读 · 0 评论 -
iOS Code Signing: 解惑
(译)iOS Code Signing: 解惑免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!原文链接地址:http://www.raywenderlich.com/2915/ios-code-signing-under-the-转载 2016-04-14 22:16:58 · 433 阅读 · 0 评论 -
lua C++对象内存管理
1:tolua++如何管理对象的生命周期一般情况下,当lua里对c++对象的引用变量可以被垃圾回收时,tolua++只是简单的释放userdata占用的4字节指针地址内存。但是也可以通过绑定或者代码指定的方式,让tolua++真正释放对象所占内存。绑定的方式,是指在将c++类型构造函数使用tolua++导出到lua里时,tolua++会自动生成new_local方法。如果在lua代转载 2016-04-19 16:52:09 · 3185 阅读 · 0 评论 -
cocos2d热更新代码分析
cocos2d热更新代码分析#include "AssetsManagerEx.h"#include "CCEventListenerAssetsManagerEx.h"#include "deprecated/CCString.h"#include "base/CCDirector.h"#include <curl/curl.h>#include <curl/easy.h>#includ原创 2016-05-15 00:39:29 · 3446 阅读 · 0 评论 -
cocos2d lua使用 shader
使用步骤:1:初始化GlPrograme的vert和frag [ 两种方式:createWithFilenames(一般扩展用)和createWithByteArrays(内置的可以采用)]2:link和updateUniforms3:GlPrograme加入到GLProgramCache缓存中4:用program生成GLProgramState并加入缓存中 方式:GLP原创 2016-04-21 21:50:45 · 3747 阅读 · 0 评论 -
碰到的一个编码问题
今天看到一个utf-8,utf-16,utf-32之间转换的程序ConvertUTF,于是拿来玩玩,于是就有了这篇文章。 照搬cocos2d里面的ConvertUTF到我的项目。 /** * std::u16string utf16; * bool ret = StringUtils::UTF8ToUTF16("你好hello", utf16); *原创 2016-06-12 21:26:12 · 3455 阅读 · 0 评论 -
cocos2d理解--SpriteBatchNode和TextureAtlas
1:TextureAtlas头文件:GLushort* _indices; //顶点index GLuint _VAOname; GLuint _buffersVBO[2]; //0: vertex 1: indices bool _dirty; //indicates原创 2016-06-14 23:48:09 · 2174 阅读 · 0 评论 -
cocos2d--WebSocket分析
WebSocket初始化之后,就可以send了,创建一个新的线程并且循环udpate,线程函数循环onSubThreadLoop,update发送消息给Delegate线程函数循环onSubThreadLoop 判断是否要destory或者触发拿发送的数据int WebSocket::onSubThreadLoop(){ if (_readyState == State::CLOSED |原创 2016-06-15 15:20:49 · 4158 阅读 · 0 评论 -
cocos2d opengl的一下知识总结一
1:矩阵变换case Projection::_3D: { float zeye = this->getZEye(); Mat4 matrixPerspective, matrixLookup; loadIdentityMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_PROJECTION原创 2016-07-08 15:26:02 · 2535 阅读 · 0 评论 -
cocos2d clipboard
需求:点击游戏面板中的按钮,将一个文本框中的字符串放入到剪贴板中。平台:win32,android,ios等多个平台。游戏是用cocos2d开发的。第一次写cocos2d跨平台的东西,慢慢摸索着也差不多搞出来了--搞定了android平台,在此记录一下。给外界提供一个接口:virtual bool copyToClipboard(const std::string &c原创 2015-10-18 17:56:31 · 3619 阅读 · 0 评论 -
带参数启动另外一个exe程序
上一篇讲了怎么启动控制台程序,并且指定输出流到控制台。本篇还是以上一篇文章的win32项目来作为被启动的程序。新建一个控制台程序:有多种方式启动另外一个exe程序,不懂就百度一下吧。void testConsole(){ ShellExecute(NULL,"open","F://project//cpp//CppAllTest//Debug//CppWinTest.exe",原创 2015-11-15 01:27:02 · 6855 阅读 · 1 评论 -
Cocos 子节点的渐变失效的处理
今天在游戏中加了个战斗数值显示,其中就有用到渐变的效果,发现竟然没有生效,查看了源代码发现子节点的opacity值跟随父节点的opacity更新是有前提的,那就是这货:_cascadeOpacityEnabled。请看源代码:void Node::setOpacity(GLubyte opacity){ _displayedOpacity = _realOpacity = opaci原创 2015-09-17 21:17:26 · 1717 阅读 · 0 评论 -
cocos2d-x之retain和release解析
retain和release倒底怎么玩? 转载请注明,原文地址: http://blog.csdn.net/musicvs/article/details/8689345正文: 1. 为什么会有retain?C++和Java不一样,Java有一套很方便的垃圾回收机制,当我们不需要使用某个对象时,给它赋予null值即可。而C++new了一个对象之后转载 2013-08-13 14:35:37 · 1337 阅读 · 0 评论 -
cocos2d-x各种宏的集锦
1.数学类cocos2d-x 里使用最多的数学类型是CCPoint,一个点,本质上也是一个向量,对于向量和向量之间有很多的数学操作要做,oh我知道要干什么,也许我知道怎么求一个值但是不知道怎么求得高效(或者不知道),怎么办我能偷懒吗?那当然可以。这其实并不是一个懒的标准,因为有一些方法写多了也可能确实稍微有那么点麻烦,所以自然cocos2d提供了一套ccp系列来帮助我们完成很多的工作,也显示一转载 2013-08-14 10:51:25 · 902 阅读 · 0 评论 -
cocos2d-x的版本更换和cocos2d-x2.1.4的安装
很久以前使用博客园博主子龙山人的一篇博文《Cocos2d-x win7+vs2010配置图文详解(亲测)》成功配置过cocos2d-1.01-x-0.9.1版本,链接为:Cocos2d-x win7 + vs2010 配置图文详解(亲测)-来自子龙山人的博客,他写的博客图文并茂,很是详细。现在想要使用最新版本cocos2d-x-2.1.4,于是需要把之前安装到VS2010中cocos2d-1.转载 2013-08-14 15:27:48 · 1554 阅读 · 0 评论 -
cocos2d3.2 渲染队列的结构和执行流程分析
在一开始看Render里面代码的时候对render方法有点疑惑:void Renderer::render(){ _isRendering = true; if (_glViewAssigned) { //Process render commands //1. Sort render commands based on ID原创 2015-08-22 19:21:18 · 2235 阅读 · 0 评论 -
cocos自定义类 绑定到lua
1:按照\frameworks\cocos2d-x\tools\tolua下的README.mdown的指示一步一步做下去。务必要和文件中描述的一样,我已经被这个坑爹的东西坑的很惨了。(检查这个有没有配置好的方法是:运行下那个genbindings.py,看是否能生成liblua的auto目录下的那些文件。如果能,那么你的环境配置就成功了。)2:写一个自定义的C++类例子:#pragm原创 2015-08-17 15:51:05 · 1436 阅读 · 0 评论 -
cocos 绑定到lua时指定命名空间 程序崩溃
引用:http://www.cocoachina.com/bbs/read.php?tid=226362--------------------------------------------------------------------------------一、bindings-generator当有一些感觉狂拽炫酷屌的 C or C++ 函数库想加到专案里时,难免会用上转载 2015-08-17 21:10:40 · 1898 阅读 · 0 评论 -
cocos 给绑定类加一个命名空间
本来以为很简单的,妈的,碰到一大堆的坑。记录一下步骤:1:给.h和.cpp加上命名空间。#pragma once#include "cocos2d.h"USING_NS_CC;namespace GameLogic{ class MyClass : public Ref { public: MyClass(void); ~MyClass(void); bool原创 2015-08-18 12:13:29 · 2413 阅读 · 0 评论 -
cocos lua绑定感悟---tolua_isusertable及lua如何访问cocos静态函数的方法
现在还是个新手,对很多还不是很了解,所以语言估计会有点晦涩,望原谅啊!!TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err){ if (def && lua_gettop(L)<abs(lo)) return 1;原创 2015-08-19 17:19:44 · 2202 阅读 · 0 评论 -
cocos2d lua绑定感悟---像cc.Sprite,cc.Director这些是如何识别的
其实自从打开GameScene.lua文件以来,我一直都很想搞清楚的一个问题就是cc.Sprite这些是如何识别的。其实第一反应肯定就是:它肯定是一个全局变量,要不然怎么调用create方法呢。先不考究cocos的C++类方法是如何绑定到lua的,我就是想知道这个全局变量是什么时候注册的?知道一点lua知识的都知道 lua里面的全局变量会保存到一个全局表_G中去,问题就转换为了 什么时候向_G原创 2015-08-19 19:58:02 · 3839 阅读 · 0 评论 -
cocos lua 绑定感悟---各种表
1:tolua_supertolua_super存在于注册表中,其中记录了各种类型的父类,key是类型的table,value是也是个的表,v_key是父类的名字,value是1。在判断类型的时候,这个非常有用。2:tolua_ubox在注册表中和每种类型的表中都存在这样一张表,注册表是在 toluafix_open 中初始化的,而每种类型的tolua_ubox表示在该注册该类型的时候原创 2015-08-19 19:45:29 · 1996 阅读 · 0 评论 -
tolua++的一些api的
1:static void mapsuper (lua_State* L, const char* name, const char* base) 作用:将base设置成name的基类,并且将base的全部父类也设置成name的基类实现方式:只要将在name的metatable有base这个key,那么base就是name的基类源代码和分析:static void mapsuper原创 2015-08-19 20:22:55 · 4166 阅读 · 0 评论 -
cocos2d lua 引用protobuf进行通信
由于项目中前后端通信协议是protobuf,所以就学习并在此记录一下。参考文章:window下使用protobufcocos2d-x 3.1 集成 云风pbc其实前面环境搭建前面那篇文章已经讲的很清楚,还有一个简单的demo,可以直接运行,展示了最基本的通信。下面我就把protobuf签入到cocos2d项目中去。1:将下载下来的pbc项目放入到cocos2d项原创 2015-09-24 15:58:01 · 2736 阅读 · 0 评论 -
cocos2d3.2 渲染优化机制
好久没写BLOG了,也是这一年都在项目上混,没什么时间去学习其他的东西,刚好最近闲下来了,就开始研究cocos2d了。最近学习了下它的渲染模式,和大家分享一下,其实具体的流程网上教程一抓一大把,我只是用几个例子来分析一下。例子一:for(int i=0;i<100;i++){ Sprite* sprite1 = Sprite::create("CloseNormal.png");原创 2015-07-27 23:13:23 · 2877 阅读 · 0 评论