cocos2d实现精灵在屏幕上随机的运动

来源:互联网 发布:招商网络推广方案 编辑:程序博客网 时间:2024/04/30 21:59

继续进行cocos2d的学习,每天学到一点东西都有一点小成就感,这个小问题困惑了我很久,不过好在我解决了它

下面来看看代码的片段吧,希望对你们有所帮助

-(id)init{    if(self = [super init])    {        //在这里面声明精灵类,定义精灵初始位置,并加入层中       for(int i = 0 ; i<numberOfBalloon;i++)       {          //声明精灵          CCSprite *ballon = [CCSprite spriteWithFile:@"balloon.png"];          //定义精灵的初始位置          ballon.position =CGPointMake([ballon texture].contentSize.width*i+                                   [ballon texture].contentSize.width*0.5f,-                                   [ballon texture].contentSize.height);          //将精灵添加到层中          [self addChild:ballon z:0 tag:2];          //把精灵都添加到数组中,因为我这里是需用到多个精灵          [ballonarray addObject:ballon];       }       [self scheduleUpdate];    }    return self; }-(void) update: (ccTime) dt{    for(int i=0;i<[ballonarray count];i++)    {       //遍历数组中的精灵        CCSprite *ballon = [ballonarray objectAtIndex:i];        //如果没有精灵运动的话就执行下面的语句        if([ballon numberOfRunningActions]==0)        {            CGSize size = [[CCDirector sharedDirector]winSize];            //定义精灵的位置为随机位置            CGPoint position = CGPointMake(size.width*CCRANDOM_0_1()                                           -ballon.contentSize.width/2,                                           size.height*CCRANDOM_0_1()                                           -ballon.contentSize.width/2);            //限制精灵的运动范围不让其出界            if(position.x<ballon.contentSize.width/2)            {                position.x = ballon.contentSize.width/2;            }            if(position.y<ballon.contentSize.height/2)            {                position.y = ballon.contentSize.height/2;            }            float time = ccpDistance(position, ballon.position)/speed;            //表示在time这个时间段内移动到position这个位置,因为是在update中运行的            //这个方法,所以精灵会一直的重复这个动作,并且不会有明显的间断            id actions = [CCMoveTo actionWithDuration:time position:position];            [ballon runAction:actions];        }    }}


还有一个问题就是精灵碰撞后会弹开,这个问题一直没实现,如果那位有类似的项目做过,欢迎交流

原创粉丝点击