距离上次写日记已经一个月过去了,第一款独立开发的游戏如愿的发布到appstore上去了。
先总结一下遇到的问题。引擎版本是quick-3.5,开发工具是xcode
1.iOS archive后quick-lib工程文件生成静态文件,无法上传到appstore。
2.使用quick层的GLProgram写shader的时候,无法从shader获取和传递uniform的值。
3.接入sdk的时候,lua先调用c++再调用jni或者Objective-C要转两层太麻烦,太费时间。
4.由于原因2、3,每次都要使用xcode编译一次才可以运行,浪费时间。
对于问题1,查看(http://www.cocoachina.com/bbs/read.php?tid-306758.html)中的三楼的答复就解决了
ok,问题2、3、4我使用的解决方式是,使用c++层写shader提供接口给lua层使用,接入sdk的时候使用LuaBridge(lua-tests中有Demo示例)调用java/oc封装好的广告sdk,问题3使用的是自定义模拟器,这样在lua中调用自定义的c++类的时候就不用每次用xcode反复编译了。
下面简单说一下quick-3.5编译并使用自定义模拟器。
首先一定要完成独立日记8月19日](http://liangxiegame.com/2015/08/19/du-li-ri-ji-2015nian-8yue-19ri/)里介绍的两篇教程。一是为了方便,开发中把自己创建的quick项目拖入sublime后,任意打开其中的一个lua文件,按一下F1健就会启动模拟器,这个功能很方便。二是为了使用代码补全的功能。
首先打开**/自己的项目路径/frameworks/cocos2d-x/tools/simulator/frameworks/runtime-src/proj.ios_mac/simulator.xcodeproj文件。查看项目中的mac和Classes/ide-support目录发现一些文件的缺失,缺失的文件只要打开quick引擎路径下的/frameworks/cocos2d-x/tools/simulator/frameworks/runtime-src/proj.ios_mac/simulator.xcodeproj就知道怎么解决了,这里有两个小坑(1.有个缺失的xib文件在Base.Iproj中,2.这个文件导入后发现编译还是不通过,点击这个xib文件,在xcode右边的窗口中的localization中会看到Base/Chinese/English三个选项,选择English**,取消Chinese则编译就能通过了)。但是需要自定义的模拟器是要Archieve版本的,Archieve之前要对simulator项目进行Edit Scheme,要把Archieve面板的Buid Configuration改成Debug版本(如果选择Release版本在开发时不能查看输出信息),Archieve后要提取的app文件复制或者移动到任意地方。
接下来要把app的路径写入sublime RunQuickSimulator插件中。
写入方法,打开sublime的Preferences->Browse Package->RunQuickSimulator->RunQuickSimulator.py,在101行(如果没变的话是101行)的return返回的字符串改成模自定义拟器的app的路径。如果打开quick项目任意的lua文件,按下F1健调出自定义的模拟器则说明配置成功了。
呼,终于把亲儿子折腾完了,游戏的音效使用的是cfxr制作的,美术用的是ps制作的像素风(因为入门时间少),大概每周抽出20个小时左右,利用业余时间折腾了一个月。
在学习上,看了部分cocos2dx的源码,
](http://blog.csdn.net/bill_man/article/details/35839499)
(http://blog.csdn.net/bill_man/article/details/38314077)
(http://blog.csdn.net/bill_man/article/details/38590099)
,略读了下c++ primer plus看了下自己基础薄弱的部分,然后在用c++ primer复习了一遍。这段期间在工作中遇到了问题,看了几节《游戏编程模版》(《game programming patterns》),把大部分的问题都解决了,其实都是小问题。
看了下上次日记的回复,有人问C++不好学吧?对我来说还好,对于我这个小渣渣来说只要能做出来的东西没问题,代码好维护,用什么语言都ok的,技术是用来解决问题的,不是用来比谁技术牛b的,而我的目的是做出自己想的游戏,现在已经做了一款,验证了一些自己的想法,技术上也做了一些尝试,已经收获得够多了。
之前的一个月总是加班,每天加班到8点,其实也没什么用,大家都是干耗着, 也不做实质性的工作,就是坐着上上网什么的,也木有加班费,大家每天的精神状态都不好,还不如早点回家。9月初的时候和策划反应了一下,策划也觉得这样没效率,最后就不加班了,yeah!后来效率提升了很多,工作的积极性也up!up!up!
介绍下大学期间的学习路线吧,先是大一寒假手抄了一假期的c语言程序,然后考过了c二级,大二的时候接触的java->jsp->struts->android,同年学校的一个设计学院工作室的游戏得了苹果设计大奖,之后就想办法进入了这个工作室,在设计学院待了一年半的时间,一开始用的cocos2d-iphone,后来用的cocos2d-x,那时候没看c++的教程,照着cpp-test手敲一遍后,语法基本没问题了,只要用好TextureCache基本做出来的东西都没什么大问题,期间做了许多尝试,也收到了很多创新的熏陶,偶尔去蹭蹭maya,ps的课什么的,整个设计院的创作氛围都很浓厚,妹纸也都和浓,这一年半挺开心的…,到了选毕业设计的时候,选择了OpenGL毕业设计,又找了一份实习,同时找了一个cocos2dx培训的兼职,那时候忙成了狗,本来c++ primer,effective c++,stl源码剖析都是那时候计划看的,结果这个状态一直持续到毕业。毕业后找工作的时候就遭报应了,面试时候被问到c++什么都答不上来。记得在设计院的时候问一个已经毕业的学长,cocos2dx的CCSprite怎么实现继承,当时就只记得他说我真垃圾,好吧,现在觉得他说得真对,我太不适合做技术了,当时我也不该问他这个,自己都没去学就直接问他,真是太不礼貌了。垃圾就垃圾吧,衣食无忧,做着自己想做的事就行。
转载请注明:独立日记](http://liangxiegame.com/2015/09/13/du-li-ri-ji-2015nian-9yue-13ri/)