摘要: 最近发现同样的代码别人可以编过我这里就不行,在编译到png.h这个引擎用到的第三方库的时候报找不到。同事帮我查了半天查出原因。他把call import-add-path的path直接加到了call import-module前面测试,然后NDK的错误信息就开始提示是NDK_MODULE_PATH的问题。果然是因为很久以前跑另一个项目的时候,提示类似错误,然后当时把NDK_MODULE_PATH设到了我的电脑的全局环境变量里,这样虽然当时解决了问题,可是后面别的项目都编不了了。所以NDK_MODULE_PATH的设置应该在自己的项目里进行。开始报的错压根没提NDK_MODULE_PATH的事啊 阅读全文
posted @ 2013-10-17 09:16 unionfind 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 美术做了个ccb中嵌套若干个子ccb的动画,其中子ccb A和B是一开始就播放的,CDE是在播放了一段时间后再通过visible设置显示出来。这个动画在CocosBuilder播放很正常,但是放到cocos2d-x里面就不对,子动画不能正常的动。跟踪调试了1天半才搞清楚标,问题在runAnimationsForSequenceIdTweenDuration这个函数里,这个函数有两处stopAllAction:mRootNode->stopAllActions()这个会在每个子ccb每次自己结束后的回调时进入该函数被调用,效果是会造成子ccb的visible不正常显示出来,压根看不到。具体 阅读全文
posted @ 2013-10-15 17:02 unionfind 阅读(1008) 评论(0) 推荐(0) 编辑
摘要: 首先有个前提知识,cocos2dx里,只能在ui线程(通常也就是主线程)中进行渲染工作(貌似现在有一些引擎是支持多线程渲染的,没有深入研究),否则大约会因为多个线程同时给GPU发指令而出现问题,比如setstring出现黑块。今天这个bug出现的原因是在C++代码里通过jni调用java来显示键盘,在输入完成后,再在java里面通过jni回调C++的代码来setstring。貌似C++代码里面通过jni调java这件事情新起了个线程,导致了java回调C++的setstring操作就不在主线程里面了,从而出现问题。只在Android有问题,pc正常。针对这个具体问题,解决方法是在java回调里 阅读全文
posted @ 2013-10-15 16:25 unionfind 阅读(844) 评论(0) 推荐(0) 编辑
摘要: 我们在开发一个独立的公共库,里面要用到libcurl,老大做好了windows版本,我来维护iOS版,于是去cocos2dx下面扒拉来了对应的include文件以及libcurl.a(windows版也是从这里扒拉过来的),跑之编不过,报这样的错误:Undefined symbols for architecture i386: "_inflate", referenced from: _inflate_stream in libCTLib.a(libcurl_la-content_encoding.o) "_inflateEnd", reference 阅读全文
posted @ 2013-10-07 13:45 unionfind 阅读(3728) 评论(0) 推荐(0) 编辑
摘要: Cocos2d-x的触摸处理机制有点不好用(当然据说在最新的3里面已经彻底改掉了),基本上就是只要你监听了触摸事件,那么当触摸发生的时候,dispatcher就会把这个消息发给所有监听了这个消息的人,任何控件都无法截获某个消息并阻止后面的响应;而且不管这个触摸是不是在你的内容范围,只要你注册了就能收到。具体来说,我们在CCScrollView上放了按钮之后,会有两个bug:1. 被CCScrollView剪切掉的不可见按钮仍然会响应。如果高优先级的可以吞噬消息的话,那么我们直接让优先级比较高的CCScrollView把这个消息吞掉就好了,如果有其他ScrollView外面的按钮需要响应,那么让 阅读全文
posted @ 2013-09-27 18:27 unionfind 阅读(632) 评论(0) 推荐(0) 编辑
摘要: Cocosbuilder从2开始加了一个颜色校准,具体来说就是在InspectorColor3里面加入这一行:color = [color colorUsingColorSpace:[NSColorSpace deviceRGBColorSpace]];实际用起来的问题是,如果当前设置颜色的时候,ColorSpace不是这个,那么选择颜色保存后,再次打开,看到的就是自动校准之后的颜色,和原先设置的RGB值相差甚远,而且如果你直接设成这个校准后的值,又会再次校准走。。。。。。我们没有很好的办法,目前临时解决方案是实现了initWithSelection,在这个里面用:_color = [NSCo 阅读全文
posted @ 2013-09-27 17:52 unionfind 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 给当前文件夹包括子文件夹加所有权限:chmod -R 777 .查看一个库支持哪几个architecture:xcrun -sdk iphoneos lipo -info 阅读全文
posted @ 2013-09-27 17:47 unionfind 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 做了一个警告窗,平时显示ok和cancel两个按钮,特殊情况下只显示ok按钮,就需要把另一个按钮隐藏掉。听上去就很简单,我给要隐藏的按钮建立了outlet链接,然后代码里面sethidden。结果竟然无效!!!跟下来发现是因为那个按钮的指针在sethidden的时候是空的(强悍的objective-c就任由人家空指针这么用都不报一丝丝错),然后因为我的代码写在initWithWindowNibName的后面,同事说这时候只是打算去init,并没有init好,我应该写在controller里面,果然放去windowDidLoad就好了,记之。 阅读全文
posted @ 2013-09-06 18:09 unionfind 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 之前查了好久没查到,结果今天意外看到相关的代码:- (BOOL) validateMenuItem:(NSMenuItem *)menuItem{ if (menuItem.action == @selector(saveDocument:))差不多就是这样,查了一下发现这个已经过期了,最新的需要用validateUserInterfaceItem 阅读全文
posted @ 2013-09-05 16:23 unionfind 阅读(160) 评论(0) 推荐(0) 编辑
摘要: Cocos2dx作为一个开源引擎,有一个重大的优势就是可以根据自己的需要进行自定义修改。我们初始使用的是2.0.4版,并且已经在此基础上根据自己的需要进行了很多处修改。2.1.4版推出后,据说在读取速度上有明显改进,为了这个特性,我们决定升级。传统的升级方法就是准备一份2.1.4,然后用beyond compare找出所有2.0.4里被修改的地方,逐一复制过来,这可是个体力活,而且每次升级的工作量都很大。后来听同事说可以用perforce将问题简化,遂研究之。准备一个original文件夹,存放没被修改过的原始版本。从original文件夹branch出来一个customized文件夹,从这里 阅读全文
posted @ 2013-09-04 10:35 unionfind 阅读(333) 评论(0) 推荐(0) 编辑