您的位置:首页 > 移动开发 > Cocos引擎

cocos2d学习-002

2011-07-15 14:41 169 查看
添加菜单

[CCMenuItemFont setFontName:@"Arial"];
[CCMenuItemFont setFontSize:26];

CCMenuItem *InsMn = [CCMenuItemFont itemFromString:@"选项1" target:self selector:@selector( choose1:)]; //分别指定回调函数
CCMenuItem *InvMn = [CCMenuItemFont itemFromString:@"选项2" target:self selector:@selector(choose2:)];

CCMenu *mn = [CCMenu menuWithItems:InsMn, InvMn,nil];
[mn alignItemsVertically];//垂直方向

[self addChild:mn ];

或者:
CCMenuItem *InsMn = [CCMenuItemFont itemFromString:@"选项1" target:self selector:@selector( choose:)]; CCMenuItem *InvMn = [CCMenuItemFont itemFromString:@"选项2" target:self selector:@selector(choose:)];
[mn addChild:pItm z:1 tag:i];

记得实现回调函数
- (void) choose:(id) sender

int tag= [sender tag];
根据tag分别处理



切换场景:

[[CCDirector sharedDirector] replaceScene: [CCSlideInRTransition transitionWithDuration:1.0f scene:sc]];

基本动作
瞬时动作的共同基类是InstantAction
延时动作的共同基类是CCIntervalAction。(包含了组合动作类)

组合动作按照一定癿次序将上述基本劢作组合起来,形成连贯的一套组合动作。
Sequence类也从CCIntervalAction派生,本身就可以被CocosNode对象执行。该类的作用就是线序排列若干个动作,然后按先后次序逐个执行。
例:[sprite runAction:[CCSequence actions:ac1, acf, ac2, nil]];

同步 – Spawn
Spawn类也从IntervalAction派生,本身就可以被CocosNode对象执行。该类的作用就是同时并列执行若干个劢作,但要求动作都必须是可以同时执行的。同步执行最后的完成时间由基本动作中用时最大者决定。
例:[sprite runAction:[CCSpawn actions:ac1, ac2, sequence, nil]];
重复有限次数 – Repeate
该类也从IntervalAction派生,可以被CocosNode对象执行。
例:[sprite runAction:[CCRepeat actionWithAction:seq times:3]];
反动作 – Reverse
反动作就是反向(逆向)执行某个劢作,支持针对动作序列的反劢作序列。反动作不是一个特定的类,而是CCFiniteAction引入的一个接口。不是所有的类都支持反动作,XxxxTo类通常不支持反劢作,XxxxBy类通常支持
例: id ac2 = [ac1 reverse]; // 创建某个动作的反动作。
动画 – Animation
动画就是让精灵自身的连续执行一段影像,形成模拟运动的效果:行走、打斗等

无限重复 – RepeatForever
RepeatForever是从Action类直接派生的,因此无法参不序列和同步;自身也无法反向执行。该类的作用就是无限期执行某个劢作戒的作序列,直到被停止。
例:[sprite runAction:[CCRepeatForever actionWithAction:[CCSequence actions:ac1, ac2,nil]]];

速度变化
通过CCEaseAction为基类癿类系和CCSpped类我们可以很方便癿修改精灵执行劢作癿速度:由快至慢还是由慢至快。

扩展动作
延时动作 – Delay
[sprite runAction:[Sequence actions:ac1, [DelayTime actionWithDuration:1], ac2, nil]];
函数调用
id acf = [CCCallFunc actionWithTarget:self selector:@selector(CallBack1)];
[sprite runAction:[CCSequence actions:ac1, acf, ac2, nil]];
带对象参数
id acf = [CallFuncN actionWithTarget:self selector:@selector(CallBack2:)];
[sprite runAction:[CCSequence actions:ac1, acf, ac2, nil]];
对应癿自定义函数:(这里,我们直接使用了该对象)
- (void) CallBack2:(id)sender
{
[sender runAction:[CCTintBy actionWithDuration:1 red:255 green:0 blue:255]];
}
带对象、数据参数

id acf = [CCCallFuncND actionWithTarget:self selector:@selector(CallBack3:data:) data:(void*)2];
[sprite runAction:[CCSequence actions:ac1, acf, ac2, nil]];
}
对应癿自定义函数,我们使用了传递癿对象和数据:
-(void) CallBack3:(id)sender data:(void*)data
{
[sender runAction:[CCTintBy actionWithDuration:(NSInteger)data red:255 green:0 blue:255]];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: