// 觸摸屏
-(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
for( UITouch *touch in touches ) {
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: location];
// 各種動作
// 瞬時動作
// 設置坐標
id action0 = [CCPlace actionWithPosition:ccp(240,160)];
// 隱藏
id action1 = [CCHide action];
// 顯示
id action2 = [CCShow action];
// 隱藏/顯示
id action3 = [CCToggleVisibility action];
// 延時動作
// 移動
id action4 = [CCMoveTo actionWithDuration:2 position:ccp(0,0)];
id action5 = [CCMoveBy actionWithDuration:2 position:ccp(100,100)];
// 彈跳
id action6 = [CCJumpTo actionWithDuration:2 position:ccp(0,200) height:30 jumps:5];
id action7 = [CCJumpBy actionWithDuration:2 position:ccp(100, 0) height:30 jumps:5];
// 貝塞爾移動
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(0, 0);
bezier.controlPoint_2 = ccp(100, 300);
bezier.endPosition = ccp(0,100);
id action8 = [CCBezierTo actionWithDuration:3 bezier:bezier];
id action9 = [CCBezierBy actionWithDuration:3 bezier:bezier];
// 縮放
id action10 = [CCScaleTo actionWithDuration:2 scale:4];
id action11 = [CCScaleBy actionWithDuration:2 scale:0.5];
// 旋轉
id action12 = [CCRotateTo actionWithDuration:2 angle:180];
id action13 = [CCRotateBy actionWithDuration:2 angle:-180];
// 閃爍
id action14 = [CCBlink actionWithDuration:3 blinks:5];
// 色調變化
id action15 = [CCTintTo actionWithDuration:2 red:255 green:0 blue:0];
id action16 = [CCTintBy actionWithDuration:0.5 red:0 green:255 blue:255];
// 淡化到/淡入/淡出
id action17 = [CCFadeTo actionWithDuration: 1 opacity:80];
id action18 = [CCFadeIn actionWithDuration:1.0f];
id action19 = [CCFadeOut actionWithDuration:1.0f];
// 動畫順序播放
CCAnimation *animation = [CCAnimation animation];
[animation setDelay:2];
// 這里就添加兩幀,需要自己添加
[animation addFrameWithTexture:sprTest.texture rect:CGRectMake(0, 0, 44, 34)];
[animation addFrameWithTexture:sprTest.texture rect:CGRectMake(0, 34, 44, 34)];
id action20 = [CCAnimate actionWithAnimation: animation];
// 組合動作
// 動畫序列
id action21 = [CCSequence actions:action19, action18, nil];
// 重復動作
id action22 = [CCRepeat actionWithAction:action21 times:10];
// 延時動作
id action23 = [CCDelayTime actionWithDuration:1];
// 同時動作
id action24 = [CCSpawn actions:action0, action4, action21, nil];
// 無限循環動作
id action25 = [CCRepeatForever actionWithAction:action21];
// 擴展動作
// 回調動作
id acf0 = [CCCallFunc actionWithTarget:self selector:@selector(CallBack1)];
// 回調動作,傳遞動畫自身指針
id acf1 = [CCCallFuncN actionWithTarget:self selector:@selector(CallBack2:)];
// 回調動作,傳遞動畫自身指針已經一個參數
id acf2 = [CCCallFuncND actionWithTarget:self selector:@selector(CallBack3:data:) data:(void*)2];
id action26 = [CCSequence actions:action19, action18, acf0, action23, action0, nil];
// 反轉動作,只能用在有方向有順序的動作上
id action27 = [action9 reverse];
// 速度變化
//id ac = [CCSequence actions:action9,action27,nil];
id actiontest = [CCMoveBy actionWithDuration:0.5 position:ccp(200,0)];
id ac = [CCSequence actions:actiontest,actiontest, nil];
// 漸快
id action28 = [CCEaseIn actionWithAction:ac rate:3];
// 漸慢
id action29 = [CCEaseOut actionWithAction:ac rate:3];
// 先漸快再漸慢
id action30 = [CCEaseInOut actionWithAction:ac rate:3];
// 正弦波移動
id action31 = [CCEaseSineIn actionWithAction:ac];
id action32 = [CCEaseSineOut actionWithAction:ac];
id action33 = [CCEaseSineInOut actionWithAction:ac];
// 由極慢至極快
id action34 = [CCEaseExponentialIn actionWithAction:ac];
// 由極快到極慢
id action35 = [CCEaseExponentialOut actionWithAction:ac];
// 由極慢至極快 再由極快到慢
id action36 = [CCEaseExponentialInOut actionWithAction:ac];
// 手動設定速度,可通過SetSpeed不斷調整
id action37 = [CCSpeed actionWithAction:ac speed:(CCRANDOM_0_1() * 5)];
[sprTest runAction:action37];
}
}
// 回調函數1
- (void) CallBack1
{
[sprTest runAction:[CCTintBy actionWithDuration:2 red:255 green:0 blue:255]];
}
// 回調函數2
- (void) CallBack2:(id)sender
{
[sender runAction:[CCTintBy actionWithDuration:1 red:255 green:0 blue:255]];
}
// 回調函數3
-(void) CallBack3:(id)sender data:(void*)data
{
[sender runAction:[CCTintBy actionWithDuration:(NSInteger)data red:255 green:0 blue:255]];
}
posted on 2011-10-14 13:18
CrackRen 閱讀(951)
評論(0) 編輯 收藏 所屬分類:
iPhone