Trabajando en el jugador

This commit is contained in:
2022-09-29 20:15:41 +02:00
parent a148c38ef8
commit b6225d2d2f
4 changed files with 430 additions and 428 deletions

View File

@@ -27,14 +27,14 @@ Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *scr
// Vector de jugadores
if (mNumPlayers == 1)
{
Player *player = new Player(PLAY_AREA_CENTER_X - 11, PLAY_AREA_BOTTOM - 24, mTexturePlayer1Legs, mTexturePlayer1Body, mTexturePlayer1Head, mTexturePlayer1Death, mRenderer);
Player *player = new Player(mRenderer, mAsset, PLAY_AREA_CENTER_X - 11, PLAY_AREA_BOTTOM - 24);
players.push_back(player);
}
else if (mNumPlayers == 2)
{
Player *player1 = new Player((PLAY_AREA_CENTER_FIRST_QUARTER_X * ((0 * 2) + 1)) - 11, PLAY_AREA_BOTTOM - 24, mTexturePlayer1Legs, mTexturePlayer1Body, mTexturePlayer1Head, mTexturePlayer1Death, mRenderer);
Player *player2 = new Player((PLAY_AREA_CENTER_FIRST_QUARTER_X * ((1 * 2) + 1)) - 11, PLAY_AREA_BOTTOM - 24, mTexturePlayer2Legs, mTexturePlayer2Body, mTexturePlayer2Head, mTexturePlayer2Death, mRenderer);
Player *player1 = new Player(mRenderer, mAsset, (PLAY_AREA_CENTER_FIRST_QUARTER_X * ((0 * 2) + 1)) - 11, PLAY_AREA_BOTTOM - 24);
Player *player2 = new Player(mRenderer, mAsset, (PLAY_AREA_CENTER_FIRST_QUARTER_X * ((1 * 2) + 1)) - 11, PLAY_AREA_BOTTOM - 24);
players.push_back(player1);
players.push_back(player2);
}
@@ -45,16 +45,6 @@ Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *scr
mTextureGameText = new LTexture(mRenderer, mAsset->get("game_text.png"));
mTextureItems = new LTexture(mRenderer, mAsset->get("items.png"));
mTexturePlayer1Head = new LTexture(mRenderer, mAsset->get("player1_head.png"));
mTexturePlayer1Body = new LTexture(mRenderer, mAsset->get("player1_body.png"));
mTexturePlayer1Legs = new LTexture(mRenderer, mAsset->get("player1_legs.png"));
mTexturePlayer1Death = new LTexture(mRenderer, mAsset->get("player1_death.png"));
mTexturePlayer2Head = new LTexture(mRenderer, mAsset->get("player2_head.png"));
mTexturePlayer2Body = new LTexture(mRenderer, mAsset->get("player2_body.png"));
mTexturePlayer2Legs = new LTexture(mRenderer, mAsset->get("player2_legs.png"));
mTexturePlayer2Death = new LTexture(mRenderer, mAsset->get("player2_death.png"));
mText = new Text(mAsset->get("smb2.png"), mAsset->get("smb2.txt"), mRenderer);
mTextScoreBoard = new Text(mAsset->get("8bithud.png"), mAsset->get("8bithud.txt"), mRenderer);
mTextBig = new Text(mAsset->get("smb2_big.png"), mAsset->get("smb2_big.txt"), mRenderer);
@@ -142,38 +132,6 @@ Game::~Game()
delete mTextureItems;
mTextureItems = nullptr;
mTexturePlayer1Head->unload();
delete mTexturePlayer1Head;
mTexturePlayer1Head = nullptr;
mTexturePlayer1Body->unload();
delete mTexturePlayer1Body;
mTexturePlayer1Body = nullptr;
mTexturePlayer1Death->unload();
delete mTexturePlayer1Death;
mTexturePlayer1Death = nullptr;
mTexturePlayer1Legs->unload();
delete mTexturePlayer1Legs;
mTexturePlayer1Legs = nullptr;
mTexturePlayer2Head->unload();
delete mTexturePlayer2Head;
mTexturePlayer2Head = nullptr;
mTexturePlayer2Body->unload();
delete mTexturePlayer2Body;
mTexturePlayer2Body = nullptr;
mTexturePlayer2Death->unload();
delete mTexturePlayer2Death;
mTexturePlayer2Death = nullptr;
mTexturePlayer2Legs->unload();
delete mTexturePlayer2Legs;
mTexturePlayer2Legs = nullptr;
delete mText;
mText = nullptr;
@@ -1670,46 +1628,46 @@ void Game::updateDeath()
{
allAreDead &= (!player->isAlive());
if (!player->isAlive())
/*if (!player->isAlive())
{
// Animación
if ((player->getDeathCounter() / 5) % 4 == 0)
{
smartSprites[player->mDeathIndex]->setSpriteClip(24 * 0, 24, 24, 24);
smartSprites[player->deathIndex]->setSpriteClip(24 * 0, 24, 24, 24);
}
else if ((player->getDeathCounter() / 5) % 4 == 1)
{
smartSprites[player->mDeathIndex]->setSpriteClip(24 * 1, 24, 24, 24);
smartSprites[player->deathIndex]->setSpriteClip(24 * 1, 24, 24, 24);
}
else if ((player->getDeathCounter() / 5) % 4 == 2)
{
smartSprites[player->mDeathIndex]->setSpriteClip(24 * 2, 24, 24, 24);
smartSprites[player->deathIndex]->setSpriteClip(24 * 2, 24, 24, 24);
}
else if ((player->getDeathCounter() / 5) % 4 == 3)
{
smartSprites[player->mDeathIndex]->setSpriteClip(24 * 3, 24, 24, 24);
smartSprites[player->deathIndex]->setSpriteClip(24 * 3, 24, 24, 24);
}
// Rebote en los laterales
if (smartSprites[player->mDeathIndex]->getVelX() > 0)
if (smartSprites[player->deathIndex]->getVelX() > 0)
{
if (smartSprites[player->mDeathIndex]->getPosX() > (GAME_WIDTH - smartSprites[player->mDeathIndex]->getWidth()))
if (smartSprites[player->deathIndex]->getPosX() > (GAME_WIDTH - smartSprites[player->deathIndex]->getWidth()))
{
smartSprites[player->mDeathIndex]->setPosX(GAME_WIDTH - smartSprites[player->mDeathIndex]->getWidth());
smartSprites[player->mDeathIndex]->setVelX(smartSprites[player->mDeathIndex]->getVelX() * (-1));
smartSprites[player->mDeathIndex]->setDestX(smartSprites[player->mDeathIndex]->getDestX() * (-1));
smartSprites[player->deathIndex]->setPosX(GAME_WIDTH - smartSprites[player->deathIndex]->getWidth());
smartSprites[player->deathIndex]->setVelX(smartSprites[player->deathIndex]->getVelX() * (-1));
smartSprites[player->deathIndex]->setDestX(smartSprites[player->deathIndex]->getDestX() * (-1));
}
}
else
{
if (smartSprites[player->mDeathIndex]->getPosX() < 0)
if (smartSprites[player->deathIndex]->getPosX() < 0)
{
smartSprites[player->mDeathIndex]->setPosX(0);
smartSprites[player->mDeathIndex]->setVelX(smartSprites[player->mDeathIndex]->getVelX() * (-1));
smartSprites[player->mDeathIndex]->setDestX(smartSprites[player->mDeathIndex]->getDestX() * (-1));
smartSprites[player->deathIndex]->setPosX(0);
smartSprites[player->deathIndex]->setVelX(smartSprites[player->deathIndex]->getVelX() * (-1));
smartSprites[player->deathIndex]->setDestX(smartSprites[player->deathIndex]->getDestX() * (-1));
}
}
}
}*/
}
if (allAreDead)
@@ -1719,7 +1677,7 @@ void Game::updateDeath()
mDeathCounter--;
if ((mDeathCounter == 250) || (mDeathCounter == 200) || (mDeathCounter == 180) || (mDeathCounter == 120) || (mDeathCounter == 60))
{
Uint8 sound = rand() % 4;
const Uint8 sound = rand() % 4;
switch (sound)
{
case 0:
@@ -2440,7 +2398,7 @@ void Game::throwPlayer(int x, int y, Player *player)
{
const int sentit = ((rand() % 2) ? 1 : -1);
//player->mDeathIndex = getSmartSpriteFreeIndex();
//player->deathIndex = getSmartSpriteFreeIndex();
SmartSprite *ss = new SmartSprite(nullptr, mRenderer);
smartSprites.push_back(ss);