示例#1
0
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);

}
示例#2
0
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;
}
示例#3
0
bool BulletNormal::init(Sprite* sprite){
	bindSprite(sprite);
	return true;
}
示例#4
0
BaseObject::BaseObject(CCSprite *sprite)
{
    m_sprite = NULL;
    if(m_sprite)
        bindSprite(sprite);
}