boolHelloWorld::init()
{
if ( !CCLayer::init() )
{
returnfalse;
}
glClearColor(255.0f, 255.0f, 255.0f, 1.0f);//背景颜色
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCSprite *player = CCSprite::create("Player.png");
player->setPosition(ccp(player->getContentSize().width/2.0f,size.height/2.0f));
this->addChild(player);
//定时的为游戏添加敌人
this->schedule(schedule_selector(HelloWorld::gameLogic), 1.0f);
returntrue;
}
void HelloWorld::gameLogic(CCTime dt)
{
this->addTarget();
}
void HelloWorld::addTarget()
{
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCSprite *target = CCSprite::create("Target.png", CCRect(0, 0, 27, 40));
//高度随机
int minY = target->getContentSize().height/2;
int maxY = winSize.height - target->getContentSize().height/2;
int rangeY = maxY - minY;
int actualY = (arc4random()%rangeY) +minY;
target->setPosition(ccp(winSize.width + (target->getContentSize().width/2),actualY));
this->addChild(target);
//速度随机
int minDuration = (int)2.0f;
int maxDuration = (int)4.0f;
int rangeDuration = maxDuration - minDuration;
int actualDuration = (rand()%rangeDuration)+ minDuration;
//create action
CCFiniteTimeAction *actionMove = CCMoveTo::create(actualDuration, ccp(0-target->getContentSize().width/2, actualY));
CCFiniteTimeAction *actionMoveDone = CCCallFuncN::create(this, callfuncN_selector(HelloWorld::spriteMoveFinished));
target->runAction(CCSequence::create(actionMove,actionMoveDone,NULL));
}
//移出出了屏幕的精灵
void HelloWorld::spriteMoveFinished(CCNode*sender)
{
CCSprite *sprite = (CCSprite*)sender;
this->removeChild(sprite, true);
}