守门员出场
守门员出场,每个守门员是从屏幕的右侧中间的位置随机方向向左侧移动
FielderSprite* fielderSprite1 = FielderSprite::create("pic/fielder.png"); //守门员精灵初始位置为右侧中间位置 fielderSprite1->setPosition(ccp(GOALKEEPER_X, GOALKEEPER_Y)); fielderSprite1->setAnchorPoint(ccp(0.5, 0.5));//默认锚点为0.5,0.5 //将fielder精灵添加到布景中 this->addChild(fielderSprite1, GAME_LEVEL_WYF);
动作序列中的6个动作,终点都在最左侧
CCActionInterval* at1=CCMoveBy::create(3.5,CCPointMake(-800,-170)); CCActionInterval* at2=CCMoveBy::create(4,CCPointMake(-800,-100)); CCActionInterval* at3=CCMoveBy::create(2.5,CCPointMake(-800,-30)); CCActionInterval* at4=CCMoveBy::create(4.5,CCPointMake(-800,40)); CCActionInterval* at5=CCMoveBy::create(5,CCPointMake(-800,110)); CCActionInterval* at6=CCMoveBy::create(3,CCPointMake(-800,180));
随机移动的6条线路
int r = rand()%6; switch(r) { case 0: fielderSprite1->runAction(at1); fielderSprite1->ccat=at1; fielderSprite1->mark=1;break; case 1: fielderSprite1->runAction(at2); fielderSprite1->ccat=at2; fielderSprite1->mark=2;break; case 2: fielderSprite1->runAction(at3); fielderSprite1->ccat=at3; fielderSprite1->mark=3;break; case 3: fielderSprite1->runAction(at4); fielderSprite1->ccat=at4; fielderSprite1->mark=4;break; case 4: fielderSprite1->runAction(at5); fielderSprite1->ccat=at5; fielderSprite1->mark=5;break; case 5: fielderSprite1->runAction(at6); fielderSprite1->ccat=at6; fielderSprite1->mark=6;break; }
将定时器在一次创建的守门员都添加到array中,用于后面检测是否与球碰撞了
array->addObject(fielderSprite1);
原文地址:http://blog.csdn.net/oyangyufu/article/details/28040125