## 一、安裝cocos2d文檔集
?
為了便于今后檢索Coco2d的各種類、方法、屬性,我們最好將cocos2d的文檔安裝到Xcode中。作者Blog中曾有一篇譯文《使用Doxgen創建Xcode文檔集》描述了創建文檔集的方法,但時至今日,Xcode已經發展到3.2.5,而Doxgen也升級到1.7.3了,原文中描述的方法也多少有些不適應了。且不知到什么原因,直接在Xcode中編譯cocos2d文檔集總是不成功,所以這里只能用DoxgenGUI生成cocos2d文檔集。
1、安裝Doxgen
當前版本為1.7.3,下載地址:
[http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc](http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc)
dmg格式,下載后把doxgen.app拖到“應用程序”目錄(/Applications)即可。
2、運行Doxgen.app
Doxgen GUI使用起來很簡單,如下圖所示:

?
Step1: Specifythe working directory…
需要指定一個Doxgen工作目錄,隨便指定一個即可,實在不行就新建個,Doxgen有時候會放一些臨時文件在這里。
為簡單起見,我們使用的是Wizard模式,這種方式比較簡單。
Project name:填寫項目的名稱
Projectversion or id:版本號
Project logo:選擇一個圖標,會顯示在文檔集中。
Source codedirectory:指定源文件目錄,cocos2d的源文件都放在安裝目錄的cocos2d目錄中。當然也可以只指定cocos2d目錄,然后勾上Scanrecursively,Doxgen會自己去搜索所有子目錄。
Destinationdirectory:文檔集生成后存放的路徑,這里,我們直接指定為cocos2d目錄。
好了,點擊Run按鈕,進入如下界面,然后點擊Rundoxygen就大功告成了:

?
打開Xcode,點擊Help——>DeveloperDocumentation,打開Document Browser,點擊Home按鈕,可以看到新多出來的Doc Set:

?
當然,你也可以打開文檔集存放目錄(/cocos2d-iphone-0.99.5/html/)目錄進行瀏覽(因為我們生成的Doc Set是Html格式的):

?
## 二、理解Cocos2dApplication
新建一個Cocos2dApplication,將Classes目錄下的所有源文件刪除。因為我們不想使用Cocos2d模板自動生成的代碼而準備自己從頭實現,這樣更方便我們理解Cocos2d應用程序的機制。同時學習在cocos2d動畫中Action(動作)的概念和運用。
1、實現 一個CCLayer
新建File,命名為HelloAction,編輯.h和.m文件內容如下:
~~~
#import <Foundation/Foundation.h>
#import "cocos2d.h"
@interface HelloAction : CCLayer{
}
@end
#import "HelloAction.h"
@implementation HelloAction
-(id) init
{
if( (self=[superinit] )) {
// 創建標簽
CCLabelTTF* label = [CCLabelTTFlabelWithString:@"Hello Actions"fontName:@"Marker Felt"fontSize:64];
// 通過director得知窗口size
CGSize size = [[CCDirectorsharedDirector] winSize];
// 讓標簽居中
label.position =? ccp( size.width /2 , size.height/2 );
// 向 CCLayer 中加入標簽
[selfaddChild: label];
// 定義一個 CCAction:CCScaleBy 動作,3秒內,縮放2.5倍
id action = [CCScaleByactionWithDuration:3.0fscale:2.5f];
// 在標簽上應用 CCAction
[labelrunAction:action];
// 定義一個 CCSprite:并載入圖像 icon.png,設置 CCSprite 的位置
CCSprite *sprite = [CCSpritespriteWithFile:@"Icon.png"];
sprite.position = ccp( 0, 50);
// 把 CCSprite 加入到 Layer,并設置其 z 軸為1,z 軸越大則表明該對象越處于上層
// 由于 z 軸默認值為0,因此 CCSprite 將顯示在標簽的上層
[selfaddChild:sprite z:1];
// 定義 CCAction:CCRotateBy 動作,4秒內旋轉720度
// "By" 意味著相對. "To" 意味著絕對.
id rotateAction = [CCRotateByactionWithDuration:4angle:180*4];
// 定義 CCAction:CCJumpBy 動作,4秒內蹦4次,位置右下角,高度100.
id jumpAction = [CCJumpByactionWithDuration:4position:ccp(size.width,0) height:100jumps:4];
// 定義 CCAtion: CCSpawn 動作,同時執行旋轉動作和蹦跳動作
id fordward = [CCSpawnactions:rotateAction, jumpAction, nil];
// 基本上所有的 CCAction 都支持 reverse 方法
// 它將執行相反的動作
id backwards = [fordward reverse];
// 定義 CCAction:CCSequence 動作,它將順序執行多個動作
id sequence = [CCSequenceactions: fordward, backwards, nil];
// 定義 CCAction:CCRepeat 動作,它可以重復執行指定動作任意次數.
// 如果要不停地重復,可以定義 "RepeatForEver" 動作.
id repeat = [CCRepeatactionWithAction:sequencetimes:2];
// 命令 CCSprite 執行指定動作,當該層顯示在屏幕上時,動作即會自動執行
[spriterunAction:repeat];
}
returnself;
}
- (void) dealloc
{
[superdealloc];
}
@end
~~~
2、實現應用程序委托
新建File,命名為AppDelegate,編輯.h和.m文件內容如下:
~~~
#import <Foundation/Foundation.h>
#import "cocos2d.h"
@interface AppDelegate : NSObject<UIAccelerometerDelegate, UIAlertViewDelegate, UITextFieldDelegate,UIApplicationDelegate>
{
??? UIWindow *window;
}
@property (nonatomic, retain) UIWindow *window;
@end
#import "AppDelegate.h"
#import "HelloAction.h"
#import "EAGLView.h"
@implementation AppDelegate
@synthesize window;
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
//創建主窗口
window = [[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]];
// 創建EAGLView實例。 EAGLView 派生亍類 UIView, 蘋果公司用它來實現 OpenGL 輸出支持,以支持OpenGL ES 編程:
EAGLView *glView = [EAGLViewviewWithFrame:[windowbounds]
?? pixelFormat:kEAGLColorFormatRGB565
?? depthFormat:0
];
// 并將EAGLView綁定到導演的openGLView屬性
[[CCDirectorsharedDirector] setOpenGLView:glView];
// 設置橫屏
[[CCDirectorsharedDirector]setDeviceOrientation:CCDeviceOrientationLandscapeLeft];
[windowaddSubview:glView];
// 顯示主窗口
[windowmakeKeyAndVisible];
[CCTexture2DsetDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
// 創建一個空的場景
CCScene *scene = [CCScenenode];
// 創建層:HelloAction
CCLayer *layer = [HelloActionnode];
// 將層加到場景中
[scene addChild:layer];
// 第一個場景:主場景
[[CCDirectorsharedDirector] runWithScene: scene];
}
- (void) dealloc
{
[windowrelease];
[superdealloc];
}
~~~
3、修改main.h
找到文件中如下語句,并修改為:
~~~
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
~~~
運行程序,可以看到當主場景載入后,“Hello Action”標簽漸漸變大,而sprite在屏幕上來回蹦跳并旋轉行進:

?
?
?
?
?