Cocos2d开发系列(二)

系统 2020 0

一、安装 cocos2d文档集

为了便于今后检索 Coco2d的各种类、方法、属性,我们最好将cocos2d的文档安装到Xcode中。作者Blog中曾有一篇译文《使用Doxgen创建Xcode文档集》描述了创建文档集的方法,但时至今日,Xcode已经发展到3.2.5,而Doxgen也升级到1.7.3了,原文中描述的方法也多少有些不适应了。且不知到什么原因,直接在Xcode中编译cocos2d文档集总是不成功,所以这里只能用Doxgen GUI生成cocos2d文档集。

1、安装Doxgen

当前版本为 1.7.3,下载地址:

http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc

dmg格式,下载后把doxgen.app拖到“应用程序”目录(/Applications)即可。

2、运行Doxgen.app

Doxgen GUI使用起来很简单,如下图所示:

Cocos2d开发系列(二)

Step1: Specify the working directory…

需要指定一个 Doxgen工作目录,随便指定一个即可,实在不行就新建个,Doxgen有时候会放一些临时文件在这里。

为简单起见,我们使用的是 Wizard模式,这种方式比较简单。

Project name:填写项目的名称

Project version or id:版本号

Project logo:选择一个图标,会显示在文档集中。

Source code directory:指定源文件目录,cocos2d的源文件都放在安装目录的cocos2d目录中。当然也可以只指定cocos2d目录,然后勾上Scan recursively,Doxgen会自己去搜索所有子目录。

Destination directory:文档集生成后存放的路径,这里,我们直接指定为cocos2d目录。

好了,点击 Run按钮,进入如下界面,然后点击Run doxygen就大功告成了:

Cocos2d开发系列(二)

打开 Xcode,点击Help——>Developer Documentation,打开Document Browser,点击Home按钮,可以看到新多出来的Doc Set:

Cocos2d开发系列(二)

当然,你也可以打开文档集存放目录( /cocos2d-iphone-0.99.5/html/ )目录进行浏览(因为我们生成的Doc Set是Html格式的):

Cocos2d开发系列(二)

二、理解 Cocos2d Application

新建一个 Cocos2d Application,将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 =[ super init ] )) {

// 创建标签

CCLabelTTF * label = [ CCLabelTTF labelWithString : @"Hello Actions" fontName : @"Marker Felt" fontSize : 64 ];

// 通过 director 得知窗口 size

CGSize size = [[ CCDirector sharedDirector ] winSize ];

// 让标签居中

label. position = ccp ( size. width / 2 , size. height / 2 );

// CCLayer 中加入标签

[ self addChild : label];

// 定义一个 CCAction CCScaleBy 动作, 3 秒内 , 缩放 2.5

id action = [ CCScaleBy actionWithDuration : 3.0f scale : 2.5f ];

// 在标签上应用 CCAction

[label runAction :action];

// 定义一个 CCSprite :并载入图像 icon.png, 设置 CCSprite 的位置

CCSprite *sprite = [ CCSprite spriteWithFile : @"Icon.png" ];

sprite. position = ccp ( 0 , 50 );

// CCSprite 加入到 Layer, 并设置其 z 轴为 1 z 轴越大则表明该对象越处于上层

// 由于 z 轴默认值为 0 ,因此 CCSprite 将显示在标签的上层

[ self addChild :sprite z : 1 ];

// 定义 CCAction CCRotateBy 动作, 4 秒内旋转 720

// "By" 意味着相对 . "To" 意味着绝对 .

id rotateAction = [ CCRotateBy actionWithDuration : 4 angle : 180 * 4 ];

// 定义 CCAction CCJumpBy 动作, 4 秒内蹦 4 次,位置右下角,高度 100.

id jumpAction = [ CCJumpBy actionWithDuration : 4 position : ccp (size. width , 0 ) height : 100 jumps : 4 ];

// 定义 CCAtion: CCSpawn 动作,同时执行旋转动作和蹦跳动作

id fordward = [ CCSpawn actions :rotateAction, jumpAction, nil ];

// 基本上所有的 CCAction 都支持 reverse 方法

// 它将执行相反的动作

id backwards = [fordward reverse ];

// 定义 CCAction CCSequence 动作,它将顺序执行多个动作

id sequence = [ CCSequence actions : fordward, backwards, nil ];

// 定义 CCAction:CCRepeat 动作,它可以重复执行指定动作任意次数 .

// 如果要不停地重复,可以定义 "RepeatForEver" 动作 .

id repeat = [ CCRepeat actionWithAction :sequence times : 2 ];

// 命令 CCSprite 执行指定动作,当该层显示在屏幕上时,动作即会自动执行

[sprite runAction :repeat];

}

return self ;

}

- ( void ) dealloc

{

[ super dealloc ];

}

@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 = [[ UIWindow alloc ] initWithFrame :[[ UIScreen mainScreen ] bounds ]];

// 创建 EAGLView 实例。 EAGLView 派生亍类 UIView, 苹果公司用它来实现 OpenGL 输出支持 , 以支持 OpenGL ES 编程:

EAGLView *glView = [EAGLView viewWithFrame:[ window bounds ]

pixelFormat: kEAGLColorFormatRGB565

depthFormat: 0

];

// 并将 EAGLView 绑定到导演的 openGLView 属性

[[ CCDirector sharedDirector ] setOpenGLView :glView];

// 设置横屏

[[ CCDirector sharedDirector ] setDeviceOrientation:CCDeviceOrientationLandscapeLeft];

[ window addSubview :glView];

// 显示主窗口

[ window makeKeyAndVisible ];

[ CCTexture2D setDefaultAlphaPixelFormat : kCCTexture2DPixelFormat_RGBA8888 ];

// 创建一个空的场景

CCScene *scene = [ CCScene node ];

// 创建层: HelloAction

CCLayer *layer = [ HelloAction node ];

// 将层加到场景中

[scene addChild :layer];

// 第一个场景:主场景

[[ CCDirector sharedDirector ] runWithScene : scene];

}

- ( void ) dealloc

{

[ window release ];

[ super dealloc ];

}

3、修改main.h

找到文件中如下语句,并修改为:

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

运行程序,可以看到当主场景载入后,“ Hello Action”标签渐渐变大,而sprite在屏幕上来回蹦跳并旋转行进:

Cocos2d开发系列(二)

Cocos2d开发系列(二)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论