随笔分类 - Cocos2d-x
摘要:用Cocos开发模型特效工具编辑器,跨Mac和windows,当中有个需求是读取并解析excel文件,但网上的查找的例子几乎都只能是在windows下面使用,再或者是命令行脚本之类的。于是,自己写了一个非常轻量级的excel解析代码,纯cpp,除了依赖几个cocos2d 方法(zip解压和tinyx...
阅读全文
摘要:偶然想到要在函数内部使用lambda递归调用,以下是可行的写法,可参考 1 std::function blendFucCall; 2 3 blendFucCall = [&blendFucCall](Node * container,const BlendFunc &bl...
阅读全文
摘要:一般安装过程如下:1:sudosh(会提示你输入当前用户的密码)2:cpapache-ant.1.8.2-bin.zip/usr/local3:cd/usr/local4:unzipapache-ant.1.8.2-bin.zip5:chownyarin(用户名):admin(用户组)apache-...
阅读全文
摘要:简单描述下需求:游戏要加入事件log,比如玩家升到10级;创建角色;或是,触发这些事件后要求客户端忘后台抛送一条log信息。一般情况下,我们可以直接使用cocos自带的HttpClient(底层用libcurl实现)来处理,但很多时候,我们游戏其他逻辑也在用HttpClient,比如登录、下载资源等...
阅读全文
摘要:https://github.com/cocos2d/cocos2d-x/pull/8149
阅读全文
摘要:Lua本身是不能像C++那样直接实现继承,但我们可以用万能的table表来实现。以下我总结了三种方式的类以及继承的实现第一、官方的做法,使用元表实现 原理参照《Programming in lua》 Object.lua Object = {class_id = 0}function Objec...
阅读全文
摘要:网上有很多cocos2d-x lua绑定c++类的接口教程,这篇文章也是总结他们的经验。其中重点参考了 http://cn.cocos2d-x.org/tutorial/show?id=1295,整个过程步骤很详细,会比较傻瓜式,希望对新手读者入门有用。教程基本环境:1.使用引擎是v3.3 beta...
阅读全文
摘要:在Cocos2d-x v2.x,CCClippingNode类有一个bug,导致区域裁剪失效,由于Cocostudio的UIScrollview组件是基于该类构建的,所以这个问题是比较常见的,fix的方法如下for iOS:in AppController replace the gl-view c...
阅读全文
摘要:pvr.ccz 是把pvr用zlib算法压缩后的图像格式,其优点是可以提升文件读取效率。大多数情况下我们可以用一些工具来将pvr压缩到pvr.ccz ,下面提供一个c++方法来完成这个过程int CompressPvrToCCZFile(unsigned char *buffer,unsigned int fileLength, const char *newFilePath){ //buffer pvr文件二进制数据,fileLength 文件长度,newFilePath 保存地址 unsigned long bufferSize = fileLength; char* Des...
阅读全文
摘要:项目接了几十个渠道平台,每个平台都建了一个Android工程,引用Classes,由于才用java接口类来抽象出平台接口方法,所以每个工程的Android.mk是完全一致的,也就是说libgame.so是一样的。前期为了保证开发进度,没有做优化,所以发一次版本,几十个渠道都要编译一次c++,其过程之痛苦,令人不寒而栗! 想办法来优化发布过程,思路是这样的,A工程先正确的编译一次,得到一个libgame.so库文件,然后B工程里面,我们在jni目录下新建目录prebuilt,然后把libgame.so放上去,Android,mk修改成如下内容,这样,B工程根本毋须编译任何c++代码,速度提...
阅读全文
摘要:(cocos2dx版本 2.2.0)用CCEditBox制作帐号输入框,当输入的内容超过框的宽度时,框里面不会显示当前输入的字符,显示上总有一部分字符被分割修改方法如下CCEditBoxImplIOS.mm文件中 ,注掉以下代码@implementation CustomUITextField//- (CGRect)textRectForBounds:(CGRect)bounds {// float padding = CC_EDIT_BOX_PADDING * cocos2d::CCEGLView::sharedOpenGLView()->getScaleX() / [[EAGLVie
阅读全文
摘要:JNI防止Android游戏恶意注入代码的方法
阅读全文
摘要:项目需要用到非常简单手势拨动,就是向上/下/左、右滑动时,界面能响应。以下提供一个较为简单的手势滑动解决办法GestureLayer.hclass GestureLayer: public CCLayer{ virtual void onEnter(); virtual void onExit(); virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent); virt...
阅读全文
摘要:http://blog.csdn.net/langresser_king/article/details/14516879
阅读全文
摘要:cocos2dx的计时器很好用,但当app进入后台,其计时器会pause掉,如果想要一个稳恒计时器就得自己去实现完成了,在Cocos2d-x for ios中我们可以利用NSTimer类并结合objc++来实现,非常好用。在Android平台我们就不得不用java类和jni来实现,计时器很多时候是用来刷新UI,所以还得考虑opengl线程调用问题下面我贴了一个用java线程来实现的类,这个是项目正在使用的部分代码。一个是秒计时器,用于倒计时使用;一种是毫秒计时器,取网络数据包时使用package com.iGamer;import org.cocos2dx.lib.Cocos2dxActivi
阅读全文
摘要:前面博客说到,cocos2d-x c++界面层运行在一个GLThread线程里面,严格的说是运行在Cocos2dxGLSurfaceView(继承自GLSurfaceView)里面。opengl的渲染,刷新都是有这个类来完成。 所以我们不能直接在java方法里调用c++方法来刷新界面,唯一的方法就是绕开javaUI主线程,让GLSurfaceView来做这件工作。ok,前面说到Cocos2dxGLSurfaceView 类,它是cocos2d-x引擎的一部分,直接修改该类太粗暴。所以以下新建一个ClassTimerJavaToC.java 以下只写核心方法import org.cocos2dx
阅读全文
摘要:2dx android项目需接入第三方sdk完成支付,玩家点击充值界面,通过jnihelper来调用java的方法并弹出android组件界面,之前采用直调的简单方法,顺利的把参数传到java层,但后面的界面处理很容易出现Can't create handler inside thread that has not called Looper.prepare()的bug日志,楼主对java不懂,只得goo和baidu,找不到确切的解决方法,但很多人都提到了一点,Android的UI线程并不安全,它的界面更新操作必须要在Activity主线程执行。虽然不太理解这层意思,但大概猜到是跨线程
阅读全文
摘要:项目中我们用CCHttpClient来下载资源文件,但网络不稳定的时候,下载很慢,因此新需求产生:要求下载时实时显示当前下载速度。 cocos2d-x的CCHttpClient并没有提供这样的功能,ASIHTTPRequest提供了这样的功能(实际上,它拥有更多强大的功能,诸如断点续传等),ASIHTTPRequest是一个Objc类库,这意味着做跨平台移植时,ASIHTTPRequest完全无用了,所以,我想到的就是修改2dx引擎相关部分的代码。 分析得知,如果能实时获得一个文件的已下载字节数,我们就能通过两次下载字节数的差值来计算出当前下载速度。HttpClient.cpp文件 ...
阅读全文
摘要:封装一个CCNode,重写draw函数,使用opengl函数绘制直线,done!Line *Line::create(float h,float w,const ccColor4B &colorValue){ Line * result = new Line(); if (result) { result->initLine(h,w, colorValue); result->autorelease(); return result; } CC_SAFE_DELETE(result); return NULL;}vo...
阅读全文
摘要:ios appicon默认会有一个半弧形白色遮罩,不太美观去掉方法:在info.plist中加上一个属性字段现在效果 ,done!
阅读全文

浙公网安备 33010602011771号