void EnemyLayer::addEnemy1(float dt) { auto enemy1 = Enemy::create(); enemy1->bindSprite(Sprite::createWithSpriteFrame(enemy1SpriteFrame), ENEMY1_MAXLIFE); auto enemy1Size = enemy1->getSprite()->getContentSize(); auto winSize = Director::getInstance()->getWinSize(); int minX = enemy1Size.width/2; int maxX = winSize.width-enemy1Size.width/2; int rangeX = maxX-minX; int actualX = (rand()%rangeX)+minX; enemy1->setPosition(Point(actualX, winSize.height+enemy1Size.height/2)); this->addChild(enemy1); this->m_pAllEnemy1->addObject(enemy1); float minDuration, maxDuration; switch(GameLayer::getCurLevel()) { case EASY: minDuration = 2.0f; maxDuration = 4.0f; break; case MIDDLE: minDuration = 1.8f; maxDuration = 3.6f; break; case HARD: minDuration = 1.6f; maxDuration = 3.2f; break; default: minDuration = 2.0f; maxDuration = 4.0f; break; } int rangeDuration = maxDuration-minDuration; int actualDuration = (rand()%rangeDuration)+minDuration; auto actionMove = MoveTo::create(actualDuration, Point(actualX, 0-enemy1->getSprite()->getContentSize().height/2)); auto actionDone = CallFuncN::create(CC_CALLBACK_1(EnemyLayer::enemy1MoveFinished, this)); auto sequence = Sequence::create(actionMove, actionDone, nullptr); enemy1->runAction(sequence); }
bool Hero::init( CCSprite* sprite ) { bool bRet = false; do { CC_BREAK_IF(!sprite); bindSprite(sprite); /* 创建子弹管理器 */ m_bulletMgr = BulletManager::create(); CC_BREAK_IF(!m_bulletMgr); this->addChild(m_bulletMgr); bRet = true; } while (0); return bRet; }
bool BulletNormal::init(Sprite* sprite){ bindSprite(sprite); return true; }
BaseObject::BaseObject(CCSprite *sprite) { m_sprite = NULL; if(m_sprite) bindSprite(sprite); }