`
CrackRen
  • 浏览: 170326 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

CCSprite各种动作介绍和使用

 
阅读更多

 

 

// 触摸屏
-(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]];	
}

 

 

分享到:
评论

相关推荐

    cocos2d 总结:三 CCSprite

    4. **动作和动画**:CCSprite可以执行各种动作,如平移(moveTo)、旋转(rotateTo)、缩放(scaleTo)等。通过组合动作,可以创建复杂的动画效果。`[sprite runAction:[CCMoveTo actionWithDuration:2 position:ccp...

    ccsprite播放动画的源代码

    创建好动画后,可以使用CCAnimate动作将其应用到ccsprite上。首先创建CCAnimate对象,然后将其添加到ccsprite的动作堆栈中,使用`runAction()`方法。 ```cpp CCAnimate* animateAction = CCAnimate::create...

    Cocos2d-x初入学堂-->CCSprite基本处理(2)工程

    首先,创建CCSprite主要涉及两个步骤:加载资源和实例化精灵。资源通常以.png或.jpeg格式存储,可以使用` CCTextureCache::sharedTextureCache()->addImage("your_image_path.png") `加载到纹理缓存中。然后,通过` ...

    Cocos2d-x横版动作手游完整源码Source

    为了调试和优化游戏,Cocos2d-x提供了一系列工具,如Profiler(性能分析器)用于监控CPU和内存使用情况,Console(控制台)用于实时查看日志信息,以及TestBed(测试床)用于验证新功能。 总的来说,这个"Cocos2d-x...

    cocos2d-x简易动作游戏源码

    本篇文章将深度解析“cocos2d-x简易动作游戏”的源代码,帮助读者理解和掌握cocos2d-x在游戏开发中的应用。 首先,我们来看看"acttest"这个压缩包中的核心文件。在cocos2d-x项目中,通常会包含以下几个关键部分: ...

    coco2d-x面试题(无脑码农).pdf,这是一份不错的文件

    总的来说,Cocos2d-x通过这些组件协同工作,提供了高效的游戏开发环境,允许开发者构建功能丰富的2D游戏,并通过各种工具简化资源管理和场景设计。面试题涵盖了Cocos2d-x的核心概念,对于理解框架的工作原理至关重要...

    Cocos2d-x人物动作类实例

    首先,Cocos2d-x的动作类(CCAction)是游戏开发中的核心组件,它们允许开发者对游戏中的节点(如精灵CCSprite)进行各种操作,如移动、旋转、缩放等。动作类的层次结构如下: 1. CCAction:所有动作的基类,定义了...

    cocos2d-x面试题DOCX文档

    CCAction是动作的基类,主要使用CCFiniteTimeAction有限次动作执行,就是按时间顺序执行一系列动作,执行完后动作结束。CCFiniteTimeAction又分为CCActionInstanse瞬时动作的基类和CCActionInterval延时动作的基类。...

    Cocos2D游戏之旅(四):卡牌翻转效果的实现(下)---源代码

    如果想要同时进行X轴和Y轴的翻转,可以组合使用`CCFlipX`和`CCFlipY`动作,或者使用`CCSequence`动作来顺序执行多个动作。 4. **添加交互性** 要让玩家能够点击卡牌触发翻转,我们需要监听触摸事件。Cocos2D提供...

    Cocos2d x手机游戏开发与项目实战详解.part2

     第五章主要介绍Cocos2d-x核心技术,这里包括Cocos2d-x的核心类CCDirector、CCScene、CCNode、CCLayer、CCSprite、CCAction等,通过案例来介绍Cocos2d-x的场景、图层、交互、动作、动画、粒子效果、游戏地图、物理...

    Cocos2d x手机游戏开发与项目实战详解.part3

     第五章主要介绍Cocos2d-x核心技术,这里包括Cocos2d-x的核心类CCDirector、CCScene、CCNode、CCLayer、CCSprite、CCAction等,通过案例来介绍Cocos2d-x的场景、图层、交互、动作、动画、粒子效果、游戏地图、物理...

    Cocos2d x手机游戏开发与项目实战详解.part1

     第五章主要介绍Cocos2d-x核心技术,这里包括Cocos2d-x的核心类CCDirector、CCScene、CCNode、CCLayer、CCSprite、CCAction等,通过案例来介绍Cocos2d-x的场景、图层、交互、动作、动画、粒子效果、游戏地图、物理...

    cocos2d-x播放flash序列帧示例

    在`FlashPluginScript`文件中,可能包含了将Flash与cocos2d-x交互的脚本,例如使用AS3编写Flash插件,将Flash的动画导出为所需的序列帧数据和动作控制逻辑。 在`src`目录下,你可能找到用C++编写的cocos2d-x源代码...

    cocos2d-x API大全中文版2016

    API大全中详细列出了各种类和函数,包括CCNode、CCDirector、CCLayer、CCSprite、CCAction等关键类的用法。例如,CCNode是所有节点类的基类,它提供了基本的位置、旋转、缩放等属性和方法;CCDirector负责管理游戏的...

    Cocos2D游戏之旅(三):卡牌翻转效果的实现

    在Cocos2d-x中,我们可以使用`CCAction`类来创建和管理各种动作,其中包括了翻转效果。`CCFlipX`和`CCFlipY`是两个基本的翻转动作,它们分别实现了沿X轴和Y轴的翻转。然而,为了实现一个完整的卡牌翻转效果,我们...

    知易Cocos2D-iPhone开发教程源代码

    3. **精灵与图集**:如何创建精灵(`CCSprite`),加载精灵帧数据(使用`.plist`和`.png`文件),以及使用图集(`CCSpriteBatchNode`)优化性能。 4. **动作与动画**:运用Cocos2D的动作系统实现各种动画效果,如`...

    Cocos2D-X开发学习笔记-动画类的使用示例

    本篇我们将深入探讨Cocos2D-X中的动画类的使用,帮助开发者更好地理解和实现游戏中的动态效果。 Cocos2D-X中的动画是通过`CCAnimation`类来实现的。`CCAnimation`包含一系列`CCSpriteFrame`,这些帧可以是单个图片...

Global site tag (gtag.js) - Google Analytics