三個星期從0開始 製作IOS遊戲並提交上架

原文: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者對應。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章