摘要: 现在游戏越来越多,主要是吸金,在推广方面却遇到一些问题。 举个实际的例子,就是xx游戏xx区的A玩家,他通过游戏内的分享功能,分享一个链接至社交平台之后,通过该玩家分享的链接进行下载的玩家对A有一个返利,比如下载次数(这个容易作弊),激活游戏的人数,以及通过该链接下载的玩家,等级达到多少后,充值XX后对A玩家都有一个返利,以此达到玩家主动推荐和宣传游戏的作用。 还有一个就是页游、手游都会...阅读全文
posted @ 2014-11-26 14:14 meteoric_cry 阅读(4) 评论(0) 编辑
摘要: 之前在学习node.js时,写过一些例子和demo,偶尔也会有人发email问我node.js的一些问题。因为是二三年前写的东西,当时使用的第三方库和node.js的版本跟最新的可能有所不同甚至比较大的出入,所以大家在遇到问题的时候可能要多注意一下版本了,发邮件给我,也可能不会得到很准确的答复。 关于websocket的例子好像之前问的人比较多,我由于工作的关系,开发由前端转webgame...阅读全文
posted @ 2014-10-31 19:27 meteoric_cry 阅读(30) 评论(0) 编辑
摘要: 项目首先从国内开始做,然后跟台湾那边谈了合作,要发行台湾版本。这过程中遇到一些问题,特别的坑,特此记录一下 1、文字的翻译; 之前开发的一款页游项目,翻译的工作全部由台湾那边负责,他们还专门花钱请人做翻译,翻译的人员是按字收钱的。现在转手游了,首先代理费一般是没有的(即便有也是很低,低的可怜),汉字的翻译全部是我们自己消化了,今时不同往日啊,页游的日子一去不复返了,手游CPA导用户水分也是越来...阅读全文
posted @ 2014-10-24 14:52 meteoric_cry 阅读(21) 评论(0) 编辑
摘要: 最近游戏项目中更新机制有所修改,游戏启动时会从cdn上读取一个文件(约60B),但是后台异常收集系统中发现很多玩家请求不了该文件(libcurl的get请求),返回的error code有很多种,以6、22、28、56居多。 一直无法确定是否跟程序完全无关(之前遇到过返回error code 23跟程序有关,是程序出bug了),因为有一些玩家反映使用2g/3g网络就正常进入游戏了。 之...阅读全文
posted @ 2014-10-08 14:10 meteoric_cry 阅读(29) 评论(0) 编辑
摘要: 游戏项目是基于cocos2d-x开发的,但线上发现一个bug就是玩家在设置完自定义头像后直接闪退。凡是在设置该玩家头像的地方,游戏就直接闪退。最终定位到的问题是图片数据源有问题,我的机器是win7,图片能预览,但同事xp系统该图片是无法预览的,默认的系统自带的图片查看工具也无法显示图片。 把图片拉到sublime text中,查看文件二进制,发现它并非一个完整的jpeg格式 没有j...阅读全文
posted @ 2014-09-28 15:57 meteoric_cry 阅读(58) 评论(0) 编辑
摘要: 经常性遇到libcurl的问题,而且都特别奇怪,记录一下CURLcode的定义: http://curl.haxx.se/libcurl/c/libcurl-errors.html #include enum CURLcode{ CURLE_OK = 0, CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ CURLE_FAILED_INIT,...阅读全文
posted @ 2014-09-26 14:47 meteoric_cry 阅读(99) 评论(0) 编辑
摘要: 最近游戏把资源(图片、配置、lua)的加载、更新全部改了 ,加载其实还好,就是不走之前的zip解压方式。 以前的大体流程: 下载 –> 启动 –> 解压 –> 更新 –> 进入游戏 现在的大体流程: 下载 –> 启动 –> 更新 –> 进入游戏 之前使用散文件gzip方式更新,现在换成下载zip包(断点下载) 在改动完成之后准备提交appstore,结果崩溃的发现在某...阅读全文
posted @ 2014-09-22 17:35 meteoric_cry 阅读(30) 评论(0) 编辑
摘要: 新改版的itunes connect,新增了4.7、5.5二种尺寸的截图,如果尺寸不对,会遇到如下的问题: (The dimensions of one or more screenshots are wrong.) 下面就列一下各屏幕尺寸需要的图片尺寸大小,希望对需要的人有所帮助 屏幕/机型 尺寸(宽 * 高 px) ...阅读全文
posted @ 2014-09-22 16:42 meteoric_cry 阅读(188) 评论(0) 编辑
摘要: 在写一个工具的时候,需要将xml转为json方便处理,以前电脑上装的node.js的版本为0.8,结果我再安装node-xml2json时提示版本过低,然后我又重装安装了最新版本。 然后再次尝试安装,首先报python版本不对,不支持3.0,然后再降级,再然后说windows系统需要先安装node-expat,装这个模块又需要先装node-gyp,好吧然后我一直安装失败… 最后我使...阅读全文
posted @ 2014-09-16 16:17 meteoric_cry 阅读(76) 评论(0) 编辑
摘要: 很悲剧,今天要提交版本,结果itunes connect改版,然后进不去了, 限于无限loading… 是网速慢吗?再等等,先吃个饭,待会再来看… ----------------------------------------------- 吃完饭回来,界面没动,好奇想看看他请求什么东西卡住了,结果发现是JS报错了… 果断加断点,然后F5 在这里,我直接重置$s...阅读全文
posted @ 2014-09-05 14:52 meteoric_cry 阅读(37) 评论(0) 编辑
摘要: 修改CCDirectorCaller.mm文件 (cocos2dx/platform/ios/CCDirectorCaller.mm) 添加的代码: #import #import "EAGLView.h" [EAGLContext setCurrentContext: [[EAGLView sharedEGLView] context]]; 参考: [C...阅读全文
posted @ 2014-09-05 14:37 meteoric_cry 阅读(46) 评论(0) 编辑
摘要: 1、下载LuaJIT,download>> 2、编译 开始 –> 程序 –> Microsoft Visual Studio xx –> Visual Studio Tools –> Visual Studio 命令提示 然后切换至LuaJIT的src目录,运行msvcbuild.bat 3、将生成的luajit.exe、lua51.dll、jit 复制到打包工具的相对目录下,这样在工具中...阅读全文
posted @ 2014-09-01 18:37 meteoric_cry 阅读(78) 评论(0) 编辑
摘要: 在Android打包项目时,发现登录功能不能使用了,logcat中也没发现什么问题,最后一行一行log定位到了问题。原来是一个so文件中的构造函数被初始化二次! 这个单例是通过继承模板来实现的(暂时不考虑线程安全的问题) templateclass CSingleT{public: static T * Instance() { if (!ms_pObje...阅读全文
posted @ 2014-08-28 17:20 meteoric_cry 阅读(19) 评论(0) 编辑
摘要: 项目中遇到一个bug,因为接入了几家越狱平台:91、同步推、PP助手,在设备上安装了三个应用,启用其中任意一个,另外二个启动后无法创建发送socket消息,从而导致游戏直接死在登录那里,再次点击登录时线程才会被唤醒(无法发送的原因定位到,是因为在调用sem_post方法后无法将线程唤醒)。之后我尝试将信号量改为条件变量,就再也没有遇到那个问题了。具体改写的几个方法: sem_open/sem_i...阅读全文
posted @ 2014-08-26 22:44 meteoric_cry 阅读(32) 评论(0) 编辑
摘要: 之前在项目中,处理类似!30转为表现的字符串时,有人写了这样的一段代码“\![1-2][0-9]”,当换成luajit时启动报错了,出错原因在于转义字符使用不对。在很多语言中,正则的转义字符是“\”,但在lua中却不是,至少标准的不是。 引号,使用“\”进行转义,跟字符串定义类似 local s = “\"Hello World!\”” => 输出 “Hello World!” - 带双引...阅读全文
posted @ 2014-08-25 22:48 meteoric_cry 阅读(29) 评论(0) 编辑
摘要: 遇到一个很郁闷的bug,CCLabelAtlas设置文字内容在ipad上和android上正常,就只有iphone怎么显示都不正常。后来把它宽度 + 1,然后就正常了。发现以前宽度设置为21px、23px都有问题,+1px变为22px就正常了 按上图设置,然后用ps将画布的宽度再+1,让文字选区居中就ok了阅读全文
posted @ 2014-07-24 20:39 meteoric_cry 阅读(32) 评论(0) 编辑
摘要: 游戏中在做很多动画时,需要用到缓冲来增强表现。比如宝箱“鼓”几下,然后“蹦”的一下打开。很多时候要调效果时,需要轮着试,如果有一张图和实际示例效果,那就省很多事情了。cocos2d-x中的缓冲动画跟以前JavaScript用到的缓冲动画公式大同小异,较早之前写过关于JavaScript动画的文章,把它拿过来就直接可以使用了 《JavaScript的动画组件》 不过需要注意的是,cocos...阅读全文
posted @ 2014-07-23 17:16 meteoric_cry 阅读(183) 评论(0) 编辑
摘要: 在ios7.0出来以前,我们都是通过wifi的mac来当作IOS设备的唯一标识符。如何在ios下获取设备的MAC,你可以参数这篇文章:获取ios的MAC地址 在没有使用IDFA之前,我们在ios7及以上的版本中使用的是CFUUID string createCUID(){ string strRet = ""; CFUUIDRef uuid_ref = CFUUIDCr...阅读全文
posted @ 2014-07-21 12:08 meteoric_cry 阅读(641) 评论(0) 编辑
摘要: 先大概介绍一下项目,卡牌游戏,主要面向女性用户。前期是走IOS市场,后来又移值到Android平台上,在几家大一点的Android渠道上进行运营。Android接入了十几家渠道,比如:91安卓、奇虎360、小米、百度手机助手、安智、联通沃商店、移动MM、电信EGame、联想、酷派、oppo、HTC(...阅读全文
posted @ 2014-07-19 00:16 meteoric_cry 阅读(53) 评论(0) 编辑
摘要: 在eclipse中配置cocos2d-x的android环境时,遇到这样的错误提示 网上搜索了一下,说是在NDK_MODULE_PATH环境变量下未找到所需要的Android.mk文件,后来仔细研究了一下项目属性,找到环境设置这一项 添加完NDK_MODULE_PATH路径之后,会在项目的.settings目录下生成一个名为org.eclipse.cdt.core.prefs的文件 ...阅读全文
posted @ 2014-06-27 10:11 meteoric_cry 阅读(49) 评论(0) 编辑
摘要: 本文是我订阅“腾讯大讲堂”公众帐号时,他们推送的一篇文章,但在腾讯大讲堂官网上我并没有找到这篇文章,不过其它专门“爬”公众号文章的网站倒是有。我觉得写的很不错。就转载出来,如有版权问题请email告知。 你可以通过扫描下面的二维码来关注“腾讯大讲堂” ----------------------------------------- 我是可恶的分隔线 ----------...阅读全文
posted @ 2014-06-26 10:08 meteoric_cry 阅读(189) 评论(0) 编辑
摘要: google查了一下,没找到解决的方法。有一篇blog应该有写怎么解决,可惜是wordpress.com的站点,打不开,网页快照也看不了… 后来回忆了一下操作步骤,只是添加了cocos2dx的引用(需要在cocos2dx的CCObject.cpp中设置断点进行调试)后出的问题 这个CCStdC.h,就有很多文章说它的问题,具体我就没再深究了,只是把cocos2dx这个目录的...阅读全文
posted @ 2014-05-16 21:12 meteoric_cry 阅读(121) 评论(0) 编辑
摘要: 一、file was built for archive which is not the architecture being linked (armv7s) 项目是基于cocos2d-x绑定lua进行开发的,需要引用liblua.a静态库,编译的时候报上面的错。需要将liblua项目中的build Settings配置项中的“Build Active Architecture Only...阅读全文
posted @ 2014-05-10 18:32 meteoric_cry 阅读(534) 评论(0) 编辑
摘要: 图片转载自:Adding a build configuration in Xcode阅读全文
posted @ 2014-05-10 17:13 meteoric_cry 阅读(211) 评论(0) 编辑
摘要: Xcode默认project通过build输出的目录,存放于目录 /Users/用户名/Library/Developer/Xcode/DerivedData/产品名称-hjwqiconnjhpjleqhsxvhdsxwktv/Build/Products/ 可以在项目最左侧的文件列表里展开Product,查看输出文件,按住control单击可以在Finder中显示,右侧辅助区域...阅读全文
posted @ 2014-05-10 16:14 meteoric_cry 阅读(230) 评论(0) 编辑
摘要: 一、初始化 CURL *pHandler = curl_easy_init(); 二、设置请求参数; 调用curl_easy_setopt方法,设置选项 curl_easy_setopt(pHandler , CURLOPT_WRITEFUNCTION, WriteData); curl_easy_setopt(pHandler , CURLOPT_WRITEDATA, pFile...阅读全文
posted @ 2014-04-22 21:28 meteoric_cry 阅读(351) 评论(0) 编辑
摘要: 公司的手游项目,使用的是基于cocos2d-x绑lua的解决方案(参数quick-x的绑定),虽然使用了lua进行开发,更新很爽了,但是崩溃依然较为严重,从后台查看崩溃日志时,基本上只能靠“猜”来复现bug。更为郁闷的是很多时候并没有使用log输出,在崩溃日志里还无法查看大概在哪一步操作崩溃的… 后来在网上搜索了一下,受到一点启发,lua代码在执行的时候可随时调用debug.traceba...阅读全文
posted @ 2014-04-14 23:53 meteoric_cry 阅读(515) 评论(1) 编辑
摘要: 之前的同事写了一个工具,但有bug,就是在替换文件后原文件的格式变成utf8 BOM了,这种带BOM的XML在Mac下可能读取不出来,所以就需要写个工具处理一下… 其实思路比较简单,首先遍历目录,然后读取目录,将文件头三个字节去除掉,然后保存为utf-8格式的文件即可,直接上代码吧 :) var fs = require('fs');var path = "目标路径..";f...阅读全文
posted @ 2014-03-26 20:51 meteoric_cry 阅读(199) 评论(0) 编辑
摘要: 美术在设计UI时,很多界面可能使用了数字图片来展示一些效果,比如CD或者 x1/x2等,一般她们都会切成很多单张小的图片,类似这样 cocox2d-x中CCLabelAtlas支持直接从图片中读取文字,但先要将上面的图片合并成到一张图片中。 CCLabelAtlas *pLabelAtlas = CCLabelAtlas::labelWithString(“text”, “png’s...阅读全文
posted @ 2014-03-11 16:05 meteoric_cry 阅读(859) 评论(0) 编辑
摘要: 之前用node.js写的订餐系统,很容易挂掉,一直也没想去解决它。今天看了一下,试了试,原因是在连接数据库的时候没有对error事件进行处理,导致程序一直挂在那里,需要重启服务才能正常使用。 没有使用缓存,直接都是操作数据存,所以导致一个页面数据库请求比较多。如果按住f5不动,操作太快,查询还没来得及响应,connect就被断开了,触发其error事件。但没有对它进行处理,导致程序直...阅读全文
posted @ 2014-03-05 11:24 meteoric_cry 阅读(203) 评论(0) 编辑
摘要: 一个插件的大致目录结构如下: 其中manifest文件最为重要,它定义/指明插件应用的相关信息(权限、版本、功能说明等),点此查看Manifest的详情>> 这里有一篇chrome官方提供的插件编写的例子 popup.html的说明,就是浏览器导航上的插件按钮点击后的弹出页面 background.htm是一个始终运行于浏览器后台的页面,浏览器关闭时它才被关闭...阅读全文
posted @ 2014-02-28 22:27 meteoric_cry 阅读(674) 评论(0) 编辑
摘要: 好不容易订台小米,过了二天查订单发现它们用的是如风达快递。东西早就到了,说是XX原因暂滞留站区。今天下着雨,心想昨天没送到今天总该送到了吧,跑到公司准备接货,从早到晚上一直打那个快递员的手机,不下十次,外加一条短信。就是想知道今天货能不能送到,不能送我就打道回府了,NND,打了N次中有一次是正在通话,还有一次“嘟”了一下就直接听到电话被挂断了,其它几次就是无限“嘟”中… 这快...阅读全文
posted @ 2014-02-16 21:05 meteoric_cry 阅读(60) 评论(0) 编辑
摘要: 一款游戏会用到很多图片资源,通常我们会使用TexturePacker工具进行图片的拼接、压缩,为了考虑性能问题,单个SpriteSheet的尺寸不会设置的太大(最大1024 * 1024),这样就可能会有多个SpriteSheet。每当有图片资源需要更新时,操作起来会有点不方便。所以希望能通过bat来批量重新生成新的SpriteSheet 首先我们需要获取TexturePacker的安...阅读全文
posted @ 2014-01-24 15:33 meteoric_cry 阅读(447) 评论(0) 编辑
摘要: 之前一直使用的hta在开发工具,最近转到node-webkit上了,对比一下二者的优劣势。hta单个文件,体积较小,但有兼容性的问题(兼容ie6、7、8就行了,也还好),node-webkit使用webkit内核,可以直接使用html5、css3的相关特性,比如圆角、渐变等,比较方便,界面炫一些,但在windows下最大的问题就是体积较大。 还有就是node-webkit在windows...阅读全文
posted @ 2014-01-20 14:48 meteoric_cry 阅读(1157) 评论(0) 编辑
摘要: 因为手游项目使用的是cocos2d-x lua进行开发,在打PC版本提交测试时,有一些环境配置的地方需要进行改动,出包的时候比较麻烦,先修改文件再生成。如果能自动打包,每次打包之前将需要修改的文件进行替代,然后调用程序打包,打完包再将文件改回去,然后将导出的exe及相关文件复制至指定的目录,再使用svn提交上去。之后在通过内网的rtx通知机制,将打包完成消息告知其它相关同事,省去很多事情,也让消息...阅读全文
posted @ 2014-01-17 21:27 meteoric_cry 阅读(157) 评论(0) 编辑
摘要: 之前有介绍svn log 的命令,即可导出版本A~B之间所有的修改动作,然后复制出相应的文件(中间有一个算法去处理每一个动作,然后得到最终需要导出的文件列表,svn常用动作有:Modified、Added、Deleted、Replacing、Conflicted、Merged、Existed等)。 SVN客户端的版本比较,我仔细研究了一下它的实现:根据选择的版本号,下载该版本号以及当前本...阅读全文
posted @ 2014-01-17 18:09 meteoric_cry 阅读(317) 评论(0) 编辑
摘要: 无论页游或是手游都需要经常进行更新,而每一次更新几乎都是一部血泪吏。这里重点介绍一下前端资源打包的简化操作。目前2D手游主流都采用了cocos2d-x 绑lua的做法,因为lua相当于一种资源可以进行动态更新。只要底部的c++代码不需要改动,几乎整个游戏都可以动态更新掉,而更新这个动作如果交由手工操作,很容易出问题而且效率极低。 有没有比较好的解决方案呢?先理一下思路,更新无外乎找到需要...阅读全文
posted @ 2014-01-17 16:35 meteoric_cry 阅读(104) 评论(0) 编辑
摘要: node.js调用bat需要用到Child Processes模块 因为bat是文件,所以需要使用execFile方法 如果指定了cwd,它会切换bat执行的目录,类似cd的功能,如果未指定默认为当前调用程序的目录。如果bat有输出错误,例如创建指定的文件/目录已经存在时,会返回一个错误信息时,调用bat会得到一个相关的错误信息:Error {killed: false, code...阅读全文
posted @ 2014-01-17 15:59 meteoric_cry 阅读(486) 评论(0) 编辑
摘要: plist文件在Mac OS下的重要性,如同Windows下的注册表文件。而很多场景下面,我们需要修改plist文件来实现一些“自动化”操作 Mac OS本身提供了一个工具:PlistBuddy,用来修改Plist文件。 而XCode是我们在Mac OS下最为常用的IDE工具,它可以直接执行shell脚本,所以想实现一些类似,在执行某些操作时自动更改plist文件中的某一项的值。 ...阅读全文
posted @ 2013-12-19 18:15 meteoric_cry 阅读(542) 评论(0) 编辑
摘要: 项目中有个需求“刮刮卡”,在手指触摸屏幕时,需要动态检查当前触摸的点是否“碰”到某个卡了,如果碰到了就把它显示出来。这里就需要了解一下IOS的坐标系统与OpenGL的坐标系统了 常见的三种坐标系: UI坐标系,起点(0, 0),位于屏幕左上角, 也称屏幕坐标系,如下图所示 Direct3D坐标系,使用的是左手坐标系(Left-hand Cartesian Coo...阅读全文
posted @ 2013-11-19 16:54 meteoric_cry 阅读(178) 评论(0) 编辑