http://www.cnblogs.com/zc22/archive/2012/12/05/2803103.html
准备设备:
一台macbook air。我香港买的,花了7k多。用起来绝对的爽。
苹果的开发者账号,当时我让爸传真汇款的,700多。挺好奇,美国竟然可以不问我信用卡密码直接划款了,如果随便搞那会怎样??
学习阶段:
无论你学习什么,选好一本书,从头看到尾,不要分散。
这句话可以让很多自学开发者脱离苦海。我接触过很多人,学习的时候东一点西一点,到处都觉得资料好,然后到处看,看了一个星期还没掌握什么,但是觉得看了很多书了。
这就是不系统的原因,所以,选一本好书,重头看到尾。之后再决定看其他的资料。这里介绍2本:
objective-c基础教程
[iOS5开发基础教程].(Beginning.iOS.5.Development.Exploring.the.iOS.SDK).David.Mark.Jack.Nutting.Jeff.LaMarche.文字版
无论网上有什么狗屁资料,都放一边,先把这2本书看完。我花了1.5个星期搞定。包括例子。
然后转入c++,这里我因为之前用了一个星期学习c++,教程是:
C++ Primer.pdf 第四版
这本书,我大概用了1.2个星期全部搞定,特别是stl这块比较重要,里面提到了一些指针安全问题。
然后我立刻转入了cocos2d-x,这个没有好书,因此最好的教材就是官网的:
http://cn.cocos2d-x.org/resource
http://www.raywenderlich.com/tutorials
http://www.himigame.com/category/iphone-cocos2d
要记得,把例子里面那个黑人射击的,自己敲一遍,就知道cocos2d-x怎么玩了,实在太他妈简单了。
之后不要急着做游戏,我要把objective-c怎么和c++结合进去的搞明白,因此生成了一个cocos2d-x的模板项目,去研究每一行代码什么意思。
这个过程非常重要,是让你的知识平稳落地的过程。
因为中途切入ios,学回来的知识如果不能和自己原来的理论体系结合,会很不踏实,很容易忘记,因此必须落地。我列举出相关的资料:
http://www.cnblogs.com/lsck/archive/2012/05/15/2501345.html
http://lizaochengwen.iteye.com/blog/1271788
http://blog.csdn.net/mengtnt/article/details/6709930
http://www.cnblogs.com/csj007523/archive/2012/08/22/2650701.html
http://www.cocoachina.com/bbs/read.php?tid=51107
http://o0o0o0o.iteye.com/blog/650275
http://stackoverflow.com/questions/492551/eagl-what-does-it-stand-for-exactly
http://blog.csdn.net/honghaier/article/details/7887873
http://www.lugw.net/?p=80005
上面几个连接回答了启动一个ios,经历哪几个步骤把cocos2d-x加载起来。过程如下:
整个流程小结:
main - appDelegate - appController - subViewController + EGALView - CCApplication.run
-
appdelegate.applicationDidFinishLauching - Helloworldscene
掌握了基本工具之后,我们需要学习第三方提供的工具,例如cocosbuilder, tilemap。这2个非常重要,特别有个例子:
http://www.cppblog.com/besterChen/archive/2011/01/20/138965.html 这个非常重要,是利用tilemap制作关卡的。必须手作一次。
http://ibezstudio.blog.163.com/blog/static/18924613020115234715208/
http://blog.csdn.net/bill_man/article/details/7981427 这篇入门了cocosbuilder
到了这里,我们会发现遇到了个瓶颈,就是好像知道很多,但是用起来什么都不知道怎么操作,API部署,方法部署,编译一堆错误,运行一堆崩溃。这个时候让我再给你指明一条路:
充分利用框架自带的例子
这句话真的是圣经,可以节省你90%的查找工作。当你下载了cocos2d-x之后,在:
cocos2d-2.0-x-2.0.4/samples/TestCpp/proj.ios下面有个xcode的项目,运行起来,你会发现所有答案都在这里,包括了cocosbuidler、http连接等。
到了这里,我相信各位已经完全入门了ios开发了,属于思想走到哪,就能实现到哪阶段。
开发封装重构
基础工具都有了,接下来每位编程熟手必做的事情,就是对框架进行二次封装。cocosbuilder首先就是个麻烦,用起来超级不方便,因此我进行二次分装,把自定义类、自定义事件、自定义属性、界面嵌套等全部都封装好了,简单调用就完成开发。
这个很重要,游戏开发中经常会出现联调,如果过程不顺利,很浪费时间。
接下来是对cocos2d-x的精灵进行二次封装,有很多的Animation等操作原API非常不方便,我封装过后,一行调用就完成了图缓存、切割、获取、生成动画等。能够同屏几百sprite了。
最后就是开发中会遇到的比如http问题、md5问题、字符串问题、操控杆sneakyInput、手机获取mac地址问题等。搜下资料吧。虽然我都已经解决了。
开发游戏流程
首先利用cocosbuilder制作界面
然后制作第一关简单的关卡,能够实现界面切换、碰撞、移动等。基本上只是用了之前的知识。去66rpg下载些素材,非常棒。
等技术稳定了之后,铺开制作关卡,重构架构。结合tilemap实现关卡地图等操作。
真机调试
这步骤比较稀里糊涂,我推荐几个链接,多试几次就ok了。
http://blog.sina.com.cn/s/blog_68e753f70100r3w5.html
http://kqwd.blog.163.com/blog/static/4122344820117191351263/
http://mobile.51cto.com/iphone-276988.htm
注意,不要用破解的方法,后患无穷。要用就用正版的流程。用iphone连接上去就OK了。这时候会发现一个问题,用cocosbuilder做出来的界面是480*320的,但是手机是retina屏,放上去剩下一半大小了。
网上一堆的狗屁不通文章,搞来搞去,最后让我找到解决方法:
http://blog.csdn.net/xiaoxiangp/article/details/8079744
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(800, 480,kResolutionShowAll);
就他妈一行代码ok了。
发布应用
这部分也是最头疼的,一堆的error。主要是注册的bundleID问题,还有证书问题。
http://blog.sina.com.cn/s/blog_68e753f70100r3w5.html
http://kqwd.blog.163.com/blog/static/4122344820117191351263/
http://mobile.51cto.com/iphone-276988.htm
http://www.cocoachina.com/bbs/read.php?tid-2776.html
http://www.cocoachina.com/bbs/read.php?tid=14781
http://blog.csdn.net/li6185377/article/details/7534831
这几个教程比较好,不过看起来还是混乱,我简单说下流程:
去ituneconnect添加一个应用,图片啥的都准备好,注意bundle id一定要写好,比如我是 com.pixysoft.P001。这个迟点xcode需要。
然后xcode选择archive进行编译,会在organizer见到打包的项目,这里面注意项目的plist的bundle id一定要写好,和网站的对应。
然后选择个distribute...,在organizer的archive里面。就会提示输入用户名密码、上传的项目等。过了个10分钟,就告诉你提交成功等待审核了。
里面会遇到一些问题,比如编译的时候最多说证书没有或者过期,别担心,给了钱一定有服务;我去apple的开发者,把develop, distirbution2个license都生成了,然后双击,就加入了xcode。这样就可以打包了。
有时候会提到bundle id问题,注意2者对应。