Muerte y reaparición del jugador
This commit is contained in:
@@ -3,6 +3,10 @@
|
||||
// Constructor
|
||||
Game::Game(SDL_Window *window, SDL_Renderer *renderer, Asset *asset, Lang *lang, Input *input)
|
||||
{
|
||||
// Inicia variables
|
||||
mCurrentRoom = "01.room";
|
||||
mSpawnPoint = {2 * 8, 12 * 8, 0, 0, 0, STATUS_STANDING, SDL_FLIP_NONE};
|
||||
|
||||
// Copia los punteros
|
||||
mRenderer = renderer;
|
||||
mAsset = asset;
|
||||
@@ -11,8 +15,8 @@ Game::Game(SDL_Window *window, SDL_Renderer *renderer, Asset *asset, Lang *lang,
|
||||
|
||||
// Crea los objetos
|
||||
mScreen = new Screen(window, renderer);
|
||||
mRoom = new Room(mAsset->get("01.room"), mRenderer, mAsset);
|
||||
mPlayer = new Player(mAsset->get("player01.png"), mRenderer, mAsset, mInput, mRoom);
|
||||
mRoom = new Room(mAsset->get(mCurrentRoom), mRenderer, mAsset);
|
||||
mPlayer = new Player(mSpawnPoint, mAsset->get("player01.png"), mRenderer, mAsset, mInput, mRoom);
|
||||
mEventHandler = new SDL_Event();
|
||||
mTextureText = new LTexture();
|
||||
mText = new Text(mAsset->get("smb2.txt"), mTextureText, renderer);
|
||||
@@ -118,6 +122,16 @@ void Game::update()
|
||||
checkPlayerAndWalls(); // Debe ir detras del player update, por si se ha metido en algun muro
|
||||
checkPlayerOnBorder();
|
||||
checkPlayerOnFloor();
|
||||
if (checkPlayerAndEnemies())
|
||||
{
|
||||
// Destruye la habitacion y el jugador
|
||||
delete mRoom;
|
||||
delete mPlayer;
|
||||
|
||||
// Crea la nueva habitación y el nuevo jugador
|
||||
mRoom = new Room(mAsset->get(mCurrentRoom), mRenderer, mAsset);
|
||||
mPlayer = new Player(mSpawnPoint, mAsset->get("player01.png"), mRenderer, mAsset, mInput, mRoom);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,9 +221,12 @@ void Game::checkPlayerOnBorder()
|
||||
{
|
||||
if (mPlayer->getOnBorder())
|
||||
{
|
||||
if (changeRoom(mRoom->getRoom(mPlayer->getBorder())))
|
||||
const std::string room_name = mRoom->getRoom(mPlayer->getBorder());
|
||||
if (changeRoom(room_name))
|
||||
{
|
||||
mPlayer->switchBorders();
|
||||
mCurrentRoom = room_name;
|
||||
mSpawnPoint = mPlayer->getSpawnParams();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user