🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、安装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使用起来很简单,如下图所示: ![](https://box.kancloud.cn/2016-05-04_572a0b924a58f.gif)   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就大功告成了: ![](https://box.kancloud.cn/2016-05-04_572a0b9264eef.gif)   打开Xcode,点击Help——>DeveloperDocumentation,打开Document Browser,点击Home按钮,可以看到新多出来的Doc Set: ![](https://box.kancloud.cn/2016-05-04_572a0b9284e66.gif)   当然,你也可以打开文档集存放目录(/cocos2d-iphone-0.99.5/html/)目录进行浏览(因为我们生成的Doc Set是Html格式的): ![](https://box.kancloud.cn/2016-05-04_572a0b929d81c.gif)   ## 二、理解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在屏幕上来回蹦跳并旋转行进: ![](https://box.kancloud.cn/2016-05-04_572a0b92b688c.gif)