前文提到Cocos2d的架構,對於他運作方式有了一部分瞭解,但是,對於專案內的程式卻感到相當的困惑,因為Cocos2d for iPhone是由Objective-C移植編寫而成的,Cocos2d引擎API都會透過Objective-C語法呼叫,因此必需對該語法有個基本認知,現在困惑沒關係,今天就來說說那些程式語法。
Objective-C語法介紹:
例子如下
Dog類別繼承至NSObject類別
@interface Dog : NSObject
名稱屬性
@property (strong, nonatomic) NSString *name;
(-)號開頭為實體方法,方法名稱為睡覺
- (void)sleeping;
(+)號開頭為類別方法,方法名稱為走路
+ (void)walking;
透過Dog類別產生一個husky實體物件
Dog *husky = [[Dog alloc] init];
設定husky名稱屬性為哈士奇
husky.name = @"哈士奇";
husky收到一個sleeping訊息,呼叫sleeping方法
[husky sleeping];
Dog收到walking訊息,呼叫walking方法
[Dog walking];
對Objective-C語法有個簡單的瞭解後,再讓我們回過頭看看專案的AppDelegate
AppDelegate類別繼承至CCAppDelegate類別
@interface AppDelegate : CCAppDelegate
(-)號開頭為實體方法
回傳值:BOOL
方法名稱:
-application:didFinishLaunchingWithOptions:
(:)號後面為方法參數:
(UIApplication *)application, (NSDictionary *)launchOptions
程式進入點
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
(-)號開頭為實體方法
方法名稱: -setupCocos2dWithOptions:
(:)號後面為方法參數: (NSDictionary*)config
self代表自己本身(AppDelegate)
設定Cocos2d的基本一些參數 ex: 畫面刷新率、FPS資訊
[self setupCocos2dWithOptions:@{ CCSetupShowDebugStats: @(YES) }];
(-)號開頭為實體方法
回傳值: (CCScene *),也就是場景
方法名稱: startScene
Cocos2d啟始場景
-(CCScene *)startScene
(+)號開頭為類別方法
回傳值:(IntroScene *)
方法名稱: +scene
IntroScene收到scene訊息,叫叫scene方法產生一個IntroScene實體物件,並且回傳給該方法
return [IntroScene scene];
透過基本語法瞭解,再看看原先的程式,是不是有更深一層的瞭解呢? 當然Objective-C還有很多沒有被提到,是希望先透過語法概念,方便我們使用Cocos2d引擎與開發遊戲, 而沒提到部分,會再後續配合Cocos2d引擎使用指出說明。