zoukankan      html  css  js  c++  java
  • cocos2d(CCSprite 用贝塞尔做抛物线,足球精灵并且同时做旋转放大效果)

    今天刚学到Cocos2d中的动作哪一张,自己做了一个用贝塞尔曲线足球精灵实现同时放大旋转和抛物线动作。

    使用

    [CCSpawn actions:,,]链接这几个动作,同时做。与CCSequence(一个动作做完然后做另一个)不同;

    直接上代码,很简单。

    -(id) init
    {
    	// always call "super" init
    	// Apple recommends to re-assign "self" with the "super's" return value
    	if( (self=[super init]) ) {
            CGSize winSize=[CCDirector sharedDirector].winSize;
            
            
            //添加背景图片。。。。。。。。。。。
            CCSprite *bgImage=[CCSprite spriteWithFile:@"background.jpg"];
            // [bgImage setAnchorPoint:CGPointZero];
            bgImage.position=ccp(winSize.width/2, winSize.height/2);
            [bgImage setScaleX:winSize.width/bgImage.texture.contentSize.width];
            [bgImage setScaleY:winSize.height/bgImage.texture.contentSize.height];
            
            
            
            //添加 炮炮兵。。。。。。。。。。。。。。。。。
            CCSprite *paoPao=[CCSprite spriteWithFile:@"paopao.png"];
            [paoPao setScale:0.5];
    		paoPao.position=ccp(winSize.width/2+200, winSize.height/2);
            [self addChild:bgImage z:-1];
            [self addChild:paoPao z:1];
            //移动
            //CCAction *moveTo=[CCMoveBy actionWithDuration:2.0f position:ccp(-400, 0)];
            //[paoPao runAction:moveTo];
            
            //跳动
            [paoPao runAction:[CCJumpTo actionWithDuration:5.0f position:ccp(winSize.width-paoPao.contentSize.width, winSize.height/2) height:100 jumps:3]];
            
            
            //定义足球精灵.........................
            
            CCSprite *ball=[CCSprite spriteWithFile:@"ball.png"];
            ball.position=ccp(50, 600);   //精灵起始位置
            [self addChild:ball z:2];
            //贝塞尔曲线
            ccBezierConfig c={ccp(600, 200),ccp(200,700),ccp(500,450)};   //定义一个结构体   ,第一个是目标位置,其他两个是控制点,第二个决定高度
            
            CCBezierTo * bezierTo=[CCBezierTo actionWithDuration:6.0 bezier:c];
            
            //旋转
            CCRotateTo *actionRotate =[CCRotateTo actionWithDuration:6 angle:1200];//旋转1200度
            //放大
            CCScaleTo *scalTo=[CCScaleTo actionWithDuration:6 scale:2.5];  //fa
            
            //将三个动作封装成一个同时播放进行的动作
            
            CCAction * action = [CCSpawn actions:bezierTo, actionRotate,scalTo, nil];
            [ball runAction:action];
            
            
            
    	}
    	return self;
    }
    

    运行结果:

















  • 相关阅读:
    多个DataTable的合并成一个新表
    into #临时表的用法
    触发器获取更新前的数据
    C# 多个CSV文件合并成一个文件
    group by 字段名 with ROLLUP
    删除DataTable重复列,只针对删除其中的一列重复的行(转)
    动态注册jS
    JS 验证
    导出Excel
    C# 导入多个工作薄文件
  • 原文地址:https://www.cnblogs.com/lixingle/p/3707696.html
Copyright © 2011-2022 走看看