正文

入 門(8)

iPhone & iPad Cocos2D游戲開發(fā)實戰(zhàn) 作者:(美)伊特海姆


  

2.2.2  資源

我們從下往上看Groups & Files窗格。找到Resources組,該組中存放的是非源碼文件,比如圖像和音頻文件。

Default.png文件是在iOS加載應用程序時顯示的圖像,而Icon.png文件顧名思義就是應用程序的圖標。fps_images.png文件是cocos2d用來顯示幀率的,是不允許刪除或修改的。

Info.plist文件包含了一些與應用程序相關的配置信息,只有要僅在即將發(fā)布應用程序時才需要在這里作修改該文件

2.2.3  其他資源

如果你熟悉用C或類似語言進行編程,那么應該能認出main.m文件,它表示一個應用程序的開始。

1. main.m

所有發(fā)生在main函數和HelloWorldAppDelegate類之間的事情都是由iPhone SDK自行處理的,不受程序員控制。因為幾乎不用對main.m作修改,所以可以放心跳過這里的內容。當然,多學一點知識無妨。

簡單來說,main函數創(chuàng)建了NSAutoreleasePool,之后調用了UIApplicationMain來啟動應用程序。其中,HelloWorldAppDelegate用作實現UIApplicationDelegate協(xié)議

int main(int argc, char *argv[]) {

NSAutoreleasePool *pool = [NSAutoreleasePool new];

int retVal = UIApplicationMain(argc, argv, nil, @"HelloWorldAppDelegate");

[pool release];

return retVal;

}

實際上,每個iOS應用程序使用NSAutoreleasePool來幫助管理內存。簡單來說,通過對象發(fā)送自動釋放消息,就不必再為何時向它們發(fā)送釋放消息而煩惱了。自動釋放池保證所有被自動釋放的對象最終都會從內存中釋放。

如果你不明白我在說些什么也沒有關系,稍后我會在本章中介紹cocos2d中的內存管理機制,到時候你就會清楚為什么每個iOS應用程序都要采用被封裝一個NSAutoreleasepool。

2. 預編譯前綴頭文件

HelloWorld_prefix.pch是一個用于加快編譯速度的工具。只有永遠不會變化或很少發(fā)生變化的頭文件才能被添加到前綴頭文件中。這樣做可以使框架的代碼提前被編譯,并對所有類可見。不幸但是,如果添加到前綴頭文件中的頭文件發(fā)生了變化,那么所有代碼會被重新編譯,這也是為什么只能向前綴頭文件中添加不變的頭文件的原因。

正如代碼清單2-1中所,cocos2d.h頭文件是非常適合被添加到前綴頭文件中的,因為它幾乎不會改變。當項目比較復雜時,編譯速度會有比較顯著的提升(當然,也不必拿出秒表來測量)。但是,一開始就把“cocos2d.h添加到前綴頭文件中是一個非常好的習慣,這樣在其他源文件中就不必再寫語句#import "cocos2d.h"了。

代碼清單2-1  前綴頭文件中加入cocos2d. 

#ifdef __OBJC__

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

#import "cocos2d.h"

#endif

同樣,欲知更多前綴頭文件以及編譯優(yōu)化的相關內容,請參考蘋果公司官方的開發(fā)者文檔http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/Xcode- BuildSystem/800-Reducing_Build_Times/bs_speed_up_build.html。


上一章目錄下一章

Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號