Exemple #1
0
    // Add Enemies
const void World::addEnemies()
{
    if (mEnemies.size() < mMaxEnemyBase) {
        Enemy newEnemy(sf::Vector2f(mWindow.getSize().x, mWindow.getSize().y));
        mEnemies.push_back(std::move(newEnemy));
    }
}
void			Game::spawnEnemies()
{
	int				posY;
	int				shape;

	posY = (rand() % _win.getH() - 5);
	if (posY < 5)
		posY = 5;
	shape = rand() % 5;
	Enemy newEnemy(_win.getW() - 10, posY, LEFT, _enemyId, shape);
	_enemy[_enemyId] = newEnemy;
	drawShip(_enemy[_enemyId]);
	_enemyId++;
}
//vector lists are used to hold enemy references
//enemies do not spawn while the player is respawning
void EnemySystem::SpawnEnemy(SDL_Renderer* renderer, Player player)
{
	chooseEnemy = rand() % 2;

	if (player.getActive() == true)
	{
		if (spawnTimer > 0)
			spawnTimer -= 1;
		else
		{
			if (chooseEnemy == 0)
			{
				FollowEnemy newEnemy(renderer, rand() % 2048, rand() % 1024);
				fEnemyList.push_back(newEnemy);
			}
			else
			{
				BounceEnemy newEnemy(renderer, rand() % 2048, rand() % 1024);
				bEnemyList.push_back(newEnemy);
			}
			spawnTimer = spawnReset;
		}
	}
}
Exemple #4
0
bool BeatQuestScene::init()
{
    assert(TRBaseScene::init());


//    addCommonBtn({0.5,0.9}, "t", [](){});

    _spCover = Sprite::create("images/beat/cover.png");
    auto size = Director::getInstance()->getWinSize();
    _spCover->setScale(size.width/_spCover->getContentSize().width      );
    _spCover->setPosition(genPos({0.5,0.5}));
    _defaultLayer->addChild(_spCover);

    _lbEnemyStatus = Label::createWithTTF("", "fonts/pixel.ttf", 80);
    _lbEnemyStatus->setPosition(genPos({0.6, 0.95}));
    _lbEnemyStatus->setTextColor(Color4B::BLACK);
    _defaultLayer->addChild(_lbEnemyStatus);


    _lbFriendStatus = Label::createWithTTF("", "fonts/pixel.ttf", 80);
    _lbFriendStatus->setPosition(genPos({0.6, 0.05}));
    _lbFriendStatus->setTextColor(Color4B::BLACK);
    _defaultLayer->addChild(_lbFriendStatus);


    _lbEnemyInfo = Label::createWithTTF("", "fonts/pixel.ttf", 120);
    _lbEnemyInfo->setPosition(genPos({0.5, 0.9}));
    _lbEnemyInfo->setTextColor(Color4B::RED);
    _defaultLayer->addChild(_lbEnemyInfo);


    _lbFriendInfo = Label::createWithTTF("", "fonts/pixel.ttf", 120);
    _lbFriendInfo->setPosition(genPos({0.5, 0.1}));
    _lbFriendInfo->setTextColor(Color4B::RED);
    _defaultLayer->addChild(_lbFriendInfo);

    initTouchThings();

    newFriend();
    newEnemy();

    scheduleUpdate();

    return true;
}
Exemple #5
0
bool BeatQuestScene::dealEnemyHit(BeatNode* node)
{
    bool shouldDelete = false;
    switch (node->type) {
        case TestBeatType::COMBO:
            //TODO
            break;
        case TestBeatType::SWORD:
            if (_enemyShieldCnt > 0) {
                _enemyShieldCnt--;
                node->beatSpeed = -node->beatSpeed*1.2;
                shouldDelete = false;
                toast(false, "REFLECT", true);
            } else {
                _enemyBlood -= _friendAttack;
                toast(false, fmt::sprintf("-%d", _friendAttack), false);
                shouldDelete = true;
                if (_enemyBlood < 0) {
                    toast(false, "DEAD!!!", false);
                    newEnemy();
                }
            }
            break;

        case TestBeatType::BLOOD:
            shouldDelete = true;
            _enemyBlood += node->value;
            toast(false, fmt::sprintf("+%d", node->value), true);
            break;

        case TestBeatType::SHIELD:
            shouldDelete = true;
            _enemyShieldCnt++;
            toast(false, "SHIELD", true);
            break;

        default:
            break;
    }
    return shouldDelete;
}
void MainWindow::generateNextLevel()
{
    int posicionX = 200;
    int posicionY = 50;

    enemyType_T enemigos[3][10];

    if(level%5 == 0)
    {
        for(int i = 0; i < 10; i++)
        {
            enemigos[0][i] = DISPARADOR;
        }
        for(int i = 1; i < 3; i++)
        {
            for(int j = 0; j < 10; j++)
            {
                enemigos[i][j] = NORMAL;
            }
        }
    }
    else if(level%5 == 1)
    {
        for(int i = 0; i < 10; i++)
        {
            enemigos[0][i] = DISPARADOR;
            enemigos[2][i] = NORMAL;
        }

        for(int i = 0; i < 5; i++)
        {
            enemigos[1][i] = DISPARADOR;
            enemigos[1][i+5] = NORMAL;
        }
    }
    else if(level%5 == 2)
    {
        for(int i = 0; i < 3; i++ )
        {
            for(int j = 0; j < 10; j++)
            {
                enemigos[i][j] = DISPARADOR;
            }
        }
    }
    else if(level%5== 3)
    {
        for(int i = 0; i < 10; i++)
        {
            enemigos[0][i] = REGRESADOR;
            enemigos[1][i] = DISPARADOR;
            enemigos[2][i] = NORMAL;
        }
    }
    else if(level%5 == 4)
    {
        for(int i = 0; i < 10; i++)
        {
            enemigos[2][i] = NORMAL;
            enemigos[1][i] = DISPARADOR;
        }
        for(int i = 0; i < 5; i++)
        {
            enemigos[0][i] = REGRESADOR;
            enemigos[0][i+5] = REGDIS;
        }
    }

    if(this->level%5 == 4)
    {
        posicionY +=200;
        //CODIGO PARA CREAR EL BOSS AQUI
    }

    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            //CODIGO PARA EL MOVIMIENTO AQUI
            QLabel* label = new QLabel();
            label->setParent(this);
            label->show();

            enemy_T* temp = newEnemy(enemigos[i][j],1,label,posicionX,posicionY);

            enemies->append(temp);
            posicionX += 60;
        }
        posicionY += 100;
        posicionX = 200;
    }

    posicionY = 50;
}