예제 #1
0
void EnemySpawner:: SpawnBoss()
{
	Enemy* lEnemy;
	lEnemy = dynamic_cast<Enemy*>(_Game->Spawn(new Enemy(), _Game->_Settings->EnemyBossTexture, true, nullptr));
	lEnemy->SetHealth(_Game->_Settings->EnemyBossHealth);
	lEnemy->SetSpeed(_Game->_Settings->EnemyBossSpeed);
	lEnemy->Activate();
	lEnemy->SetText("");
}
예제 #2
0
    void EnemyGenerator::GenerateEnemy()
    {
        Enemy* enemy;
        
        // Get all the % values for the colors
        vector<float> allColorKeys = KeysInVector(allColorTypeChances);
        float colorTypeChance = randomPourcentageGenerator();
        //Get a random key from the Vector of keys and use it to get it's paired color enum
        Enemy::ColorType color = allColorTypeChances[GetEnumKey(allColorKeys, colorTypeChance)];

        // Create proper enemy depending on color
        switch (color)
        {
            case Enemy::green:
                enemy = GreenEnemy::Create();
                break;
            case Enemy::orange:
                enemy = OrangeEnemy::Create();
                break;
            case Enemy::red:
                enemy = RedEnemy::Create();
                break;
            default:
                break;
        }
        enemy->color = color;
        
        // Same concept for color but with the shape
        vector<float> allShapeKeys = KeysInVector(allShapeTypeChances);
        float shapeTypeChance = randomPourcentageGenerator();
        enemy->shape = allShapeTypeChances[GetEnumKey(allShapeKeys, shapeTypeChance)];
        
        enemy->enemySprite = Sprite::create(textBank->enemyTexture);
        enemy->enemySprite->setTag(ENEMY_TAG);
        // Used for referencing object to delete
        enemy->enemySprite->setUserData(enemy);
        // Find the proper rect on the enemy spritesheat
        enemy->SetupEnemySpriteRect(enemy);
        // Apply proper collider geometry
        enemy->SetupCollisionShape(enemy);
        // Move above the screen with random X pos
        enemy->SetStartingPos(enemy->enemySprite);
        
        enemyLayer->addChild(enemy->enemySprite);
        
        enemy->Activate();
    }
예제 #3
0
void EnemySpawner:: SpawnEnemy()
{
	Enemy* lEnemy;

	if (Wave == 1)
	{
		lEnemy = dynamic_cast<Enemy*>(_Game->Spawn(new Enemy(), _Game->_Settings->Enemy1Texture, true, nullptr));
		lEnemy->SetHealth(_Game->_Settings->Enemy1Health);
		lEnemy->SetSpeed(_Game->_Settings->Enemy1Speed);
		lEnemy->SetSound(_Game->_Settings->EnemyDeathSound);
	}

	if (Wave >= 2)
	{
		lEnemy = dynamic_cast<Enemy*>(_Game->Spawn(new Enemy(), _Game->_Settings->Enemy2Texture, true, nullptr));
		lEnemy->SetHealth(_Game->_Settings->Enemy2Health);
		lEnemy->SetSpeed(_Game->_Settings->Enemy2Speed);
		lEnemy->SetSound(_Game->_Settings->EnemyDeathSound);
	}

	lEnemy->Activate();
}