[IOS連續寫遊戲]為了遊戲模型化,重新敲代碼

Modeling

前兩天我在床上試玩我自己的小遊戲時,因為沒有鎖定翻轉屏幕,不小心看到了我遊戲的一個詭異畫面….於是我想起來屏幕的大小、方向可能會不同Orz….

沒有autosize1  沒有autosize2

我的小遊戲翻轉以後,就變成上面的圖形了T_T….一邊都是空白。

沒有autosize3    我平時寫程序都開著iphone5S的模擬器,所以打開iphone6的模擬器的時候,就整個歪掉了,其他的遊戲更不用說了Orz….

而真的讓我感覺必須得重視的時候,是我在網上查到如果現在要上傳app到app Store上,一定要支持不同屏幕………無數個點。

是的,當時因為android碎片畫面而跑來學iphone開發,結果也要面對這個問題了。

    我受不了了,我要Model化!!!

gameModel

上面這張圖,是一個小遊戲的開場畫面,如果我繼續這樣沒有Model的情況下去寫,就變成,我要寫下面的這些東西。

  • GameHeader,上面那個藍色的區域,包括Back按鈕和問號(叫出HowToPlay)
  • HowToPlay,包括Start Game這個按鈕

只有兩個但就有一定的代碼量,如果我今天決定讓每個小遊戲的GameHeader都長得一樣,那我乾脆就寫一個Model吧,不然20個小遊戲寫好,我還想去改的時候,那就….

    UI要Model化

除了我不用重新去寫已經寫過的東西以外,我還可以在Model中寫好自適應屏幕的內容,我現在的做法是以iphone4為主去設計一個畫面,然後根據屏幕的變化,用這個基數去乘以變化的比例。

我還沒有學過Xib,聽說他有個autoSize功能,而現在iOS8出來了,有個autoClasses可以去看看,也是要解決屏幕碎片化的事情。

    GameModel化

第一次寫app,而且很多功能還不熟悉,為了不停留在光想而不寫的狀態,我是想到什麼就盡力去寫出來。

但是這就出現了一個問題,我寫一個小遊戲基本上有3個Class,GameViewController遊戲畫面、GameCenter遊戲設定、GameArrow之類的道具。

而Function的命名都很隨意….這樣會有個問題,我回頭去看的時候都要猜是什麼功能,不只是名稱問題,調用的方式我都不一樣。

GuessNumber、CheckCheck等遊戲,在結束的時候都可以選擇再來一次。
再來一次意味著要重新init UI和Game Setting,但我調起來真的很亂,我也不貼代碼了….

GameCenter基本功能

  • -(void)startGame;      初始化遊戲數值。
  • -(void)levelUpGame; 修改遊戲數值,繼續遊戲。
  • -(void)endGame;        有些遊戲會有Timer,讓畫面跳出的時候記得要停掉。
  • -(void)finishedGame; 觸發遊戲結束,跳出成績,比如時間到。

這次學到的新東西

1、xcode6以後pch預編譯文件不會默認添加了,要手動添加,然後裡面可以預編譯類似全局變量的東西。

2、app store要求支持64位系統,
網上查了下,似乎用int 、float之類的都是32位上才能使用的,要改用NSInteger和CGFloat,還沒有學過這方面的東西,不過我也改了下。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *