• 经典正则表达式语句

    推荐学习地方 http://www.zjmainstay.cn/ 会持续更新中 python 需要 pip install regexVAR_TYPE = r'id|void|int|bool|BOOL|float|double|\bCG[\w]+\b|\bUI[\w]+\b|\bNS[\w]+\b|[\w]+[ ]*\*[ ]*' 双引号里面的内容 r'\"(?:[^"\\]|\\.)*\"' 注释 (***) r'/[*][\s\S]+?[*]/' 选取方法块(objc) r'[ ]*[+-][ ]*\((%s)\)[ ]*(\w+)[ ]*(:.*)?[ ]*[\s]+?(?<rec>\{(?:[^{}]+|(?&rec))*\})' % VAR_TYPE
  • ios 获取全路径问题

    描述

    在给游戏资源做加密的时候,发现了一个问题,加密前的对象可以正常获取fullpath,加密后就一直是nil,难道苹果会自己识别 对应资源,如果资源格式被破坏后,就没办法取到fullpath.

  • cocos2dx 2.2.6 file not found

    今天需求弄一个旧项目,于是就是官方下了一个2.2.6的版本,下载按官方配置各种 <string> file not found <cctype> file not found 各种google. 解决方法: 1.cocos2dx.xcodeproj ==> BuildSetting ==> IOS Development Target 修改为:8.0 2.bitcode 修改 NO 3.c++ Standard Library 修改为 Compiler Default
  • android apk 下载无法识别

    描述

    因为游戏买广告的问题,发现转化率低的可怜,就开始找原因,用各种手机测试,发现了一个问题,就是用华为的手机下载完,在下载中心无法识别文件。 我在网页下载别人的的APK的时候会弹出打开或者保存的选项,于是我就开始找原因

  • iap 产品生效时间

    换了一个开发者帐号发布应该,结果内购一直提示“无效产品ID”,实际上是需要24小时后才会生效的。 官方文档 https://developer.apple.com/library/content/technotes/tn2413/_index.html#//apple_ref/doc/uid/DTS40016228-CH1-TROUBLESHOOTING-WHY_ARE_MY_PRODUCT_IDENTIFIERS_BEING_RETURNED_IN_THE_INVALIDPRODUCTIDENTIFIERS_ARRAY_
  • cocos2dx android ui and gl threads

    环境 搞android SDK 的时候,因为接quickSDK没有lua版本,只好用android 原生版本,自己写 java跟lua的交互 问题 java 跟 lua 交互有概率性的会出现闪退 思路及解决 思路 这种概率性的闪退,一般都是线程不安全导致的,于是我就去找,看到cocos2dx 里面有很多用到 mActivity:runOnUiThread(new Runnable(){ public void run() { // xxoo xxoo } }) 然后我就认为这个是cocos2dx的主线程,然后就拼命的用它去调用lua,结果就是闪退不断, 这个时候我觉得是不对的,如果这个是主线程是不可能有这个问题,于是我再去找,发现一个方法长得跟它很像的 mActivity:runOnGLThread(new Runnable(){ public void run() { // xxoo xxoo } }) 这时候我才清楚,原来这个GL线程才是我们游戏线程,UI线程是UI框架的,如果调用高级UI或者SDK就需要用UI线程。 解决方案 cocos2dx的东西使用 GL线程 android高线UI使用 UI线程 结果 不闪退
  • cocos2dx FileUtils 缓存机制

    背景 处理热lua更新功能 问题 有些文件没有没有获取最新下载的资源,依然是使用旧的 思路及解决 首先查看搜索路径 dump(cc.FileUtils:getInstance():getSearchPaths()) -- 结果是没有问题的 路径缓存起来 std::string FileUtils::fullPathForFilename(const std::string &filename) const { if (filename.empty()) { return ""; } if (isAbsolutePath(filename)) { return filename; } // Already Cached ? auto cacheIter = _fullPathCache.find(filename); if(cacheIter != _fullPathCache.end()) { return cacheIter->second; } // Get the new file name. const std::string newFilename( getNewFilename(filename) ); std::string fullpath; for (const auto& searchIt : _searchPathArray) { for (const auto& resolutionIt : _searchResolutionsOrderArray) { fullpath = this->getPathForFilename(newFilename, resolutionIt, searchIt); if (!