trabajando los items
This commit is contained in:
@@ -2086,7 +2086,7 @@ LTexture *Game::balloonTexture(int kind)
|
||||
|
||||
else if (kind == 3 || kind == 7)
|
||||
{
|
||||
return balloon4Texture;
|
||||
return balloon3Texture;
|
||||
}
|
||||
|
||||
else if (kind == 4 || kind == 8 || kind == 9)
|
||||
@@ -2214,7 +2214,7 @@ void Game::checkPlayerItemCollision(Player *player)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
item->erase();
|
||||
item->disable();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2255,12 +2255,12 @@ void Game::checkBulletBalloonCollision()
|
||||
{
|
||||
if (droppeditem != ITEM_COFFEE_MACHINE)
|
||||
{
|
||||
createItem(mTextureItems, mRenderer, balloon->getPosX(), balloon->getPosY(), droppeditem);
|
||||
createItem(balloon->getPosX(), balloon->getPosY(), droppeditem);
|
||||
JA_PlaySound(mSoundItemDrop);
|
||||
}
|
||||
else
|
||||
{
|
||||
createItem(mTextureItems, mRenderer, players[index]->getPosX(), 0, droppeditem);
|
||||
createItem(players.at(index)->getPosX(), 0, droppeditem);
|
||||
mCoffeeMachineEnabled = true;
|
||||
}
|
||||
}
|
||||
@@ -2327,7 +2327,7 @@ void Game::updateItems()
|
||||
for (auto item : items)
|
||||
{
|
||||
item->update();
|
||||
if (item->floorCollision())
|
||||
if (item->isOnFloor())
|
||||
{
|
||||
JA_PlaySound(mSoundCollision);
|
||||
mEffect.shake = true;
|
||||
@@ -2413,12 +2413,28 @@ Uint8 Game::dropItem()
|
||||
}
|
||||
|
||||
// Crea un objeto item
|
||||
void Game::createItem(LTexture *texture, SDL_Renderer *renderer, Uint8 type, float x, float y)
|
||||
void Game::createItem(Uint8 type, float x, float y)
|
||||
{
|
||||
Item *i = new Item(texture, renderer, type, x, y);
|
||||
Item *i = new Item(mRenderer, mAsset, type, x, y);
|
||||
items.push_back(i);
|
||||
}
|
||||
|
||||
// Vacia el vector de items
|
||||
void Game::freeItems()
|
||||
{
|
||||
if (items.empty() == false)
|
||||
{
|
||||
for (int i = items.size() - 1; i >= 0; --i)
|
||||
{
|
||||
if (items.at(i)->isEnabled() == false)
|
||||
{
|
||||
delete items.at(i);
|
||||
items.erase(items.begin() + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Crea un objeto SmartSprite para mostrar la puntuación al coger un objeto
|
||||
void Game::createItemScoreSprite(int x, int y, SmartSprite *sprite)
|
||||
{
|
||||
@@ -2691,6 +2707,7 @@ void Game::updatePlayField()
|
||||
// Vacia los vectores
|
||||
freeBullets();
|
||||
freeBalloons();
|
||||
freeItems();
|
||||
}
|
||||
|
||||
// Actualiza el fondo
|
||||
@@ -2787,6 +2804,8 @@ void Game::renderPlayField()
|
||||
}
|
||||
|
||||
renderFlashEffect();
|
||||
|
||||
mText->write(0, 0, std::to_string(balloons.size()));
|
||||
}
|
||||
|
||||
// Gestiona el nivel de amenaza
|
||||
@@ -2825,45 +2844,45 @@ void Game::checkGameInput()
|
||||
const int index = 0;
|
||||
if (mDemo.dataFile[mDemo.counter].left == 1)
|
||||
{
|
||||
players[index]->setInput(INPUT_LEFT);
|
||||
players.at(index)->setInput(INPUT_LEFT);
|
||||
}
|
||||
|
||||
if (mDemo.dataFile[mDemo.counter].right == 1)
|
||||
{
|
||||
players[index]->setInput(INPUT_RIGHT);
|
||||
players.at(index)->setInput(INPUT_RIGHT);
|
||||
}
|
||||
|
||||
if (mDemo.dataFile[mDemo.counter].noInput == 1)
|
||||
{
|
||||
players[index]->setInput(INPUT_NULL);
|
||||
players.at(index)->setInput(INPUT_NULL);
|
||||
}
|
||||
|
||||
if (mDemo.dataFile[mDemo.counter].fire == 1)
|
||||
{
|
||||
if (players[index]->canFire())
|
||||
if (players.at(index)->canFire())
|
||||
{
|
||||
players[index]->setInput(INPUT_BUTTON_2);
|
||||
createBullet(players[index]->getPosX() + (players[index]->getWidth() / 2) - 4, players[index]->getPosY() + (players[index]->getHeight() / 2), BULLET_UP, players[index]->isPowerUp(), index);
|
||||
players[index]->setFireCooldown(10);
|
||||
players.at(index)->setInput(INPUT_BUTTON_2);
|
||||
createBullet(players.at(index)->getPosX() + (players.at(index)->getWidth() / 2) - 4, players.at(index)->getPosY() + (players.at(index)->getHeight() / 2), BULLET_UP, players.at(index)->isPowerUp(), index);
|
||||
players.at(index)->setFireCooldown(10);
|
||||
}
|
||||
}
|
||||
if (mDemo.dataFile[mDemo.counter].fireLeft == 1)
|
||||
{
|
||||
if (players[index]->canFire())
|
||||
if (players.at(index)->canFire())
|
||||
{
|
||||
players[index]->setInput(INPUT_BUTTON_1);
|
||||
createBullet(players[index]->getPosX() + (players[index]->getWidth() / 2) - 4, players[index]->getPosY() + (players[index]->getHeight() / 2), BULLET_UP, players[index]->isPowerUp(), index);
|
||||
players[index]->setFireCooldown(10);
|
||||
players.at(index)->setInput(INPUT_BUTTON_1);
|
||||
createBullet(players.at(index)->getPosX() + (players.at(index)->getWidth() / 2) - 4, players.at(index)->getPosY() + (players.at(index)->getHeight() / 2), BULLET_UP, players.at(index)->isPowerUp(), index);
|
||||
players.at(index)->setFireCooldown(10);
|
||||
}
|
||||
}
|
||||
|
||||
if (mDemo.dataFile[mDemo.counter].fireRight == 1)
|
||||
{
|
||||
if (players[index]->canFire())
|
||||
if (players.at(index)->canFire())
|
||||
{
|
||||
players[index]->setInput(INPUT_BUTTON_3);
|
||||
createBullet(players[index]->getPosX() + (players[index]->getWidth() / 2) - 4, players[index]->getPosY() + (players[index]->getHeight() / 2), BULLET_UP, players[index]->isPowerUp(), index);
|
||||
players[index]->setFireCooldown(10);
|
||||
players.at(index)->setInput(INPUT_BUTTON_3);
|
||||
createBullet(players.at(index)->getPosX() + (players.at(index)->getWidth() / 2) - 4, players.at(index)->getPosY() + (players.at(index)->getHeight() / 2), BULLET_UP, players.at(index)->isPowerUp(), index);
|
||||
players.at(index)->setFireCooldown(10);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user