forked from jaildesigner-jailgames/jaildoctors_dilemma
Cambiado el constructor de la clase Player
This commit is contained in:
@@ -31,7 +31,8 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
|
||||
itemTracker = new ItemTracker();
|
||||
roomTracker = new RoomTracker();
|
||||
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, debug);
|
||||
player = new Player(spawnPoint, "player.png", "player.ani", renderer, resource, asset, options, input, room, debug);
|
||||
const player_t player = {spawnPoint, "player.png", "player.ani", renderer, resource, asset, options, input, room, debug};
|
||||
this->player = new Player(player);
|
||||
eventHandler = new SDL_Event();
|
||||
text = new Text(resource->getOffset("smb2.txt"), resource->getTexture("smb2.png"), renderer);
|
||||
music = JA_LoadMusic(asset->get("game.ogg").c_str());
|
||||
@@ -51,7 +52,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
|
||||
blackScreen = false;
|
||||
blackScreenCounter = 0;
|
||||
|
||||
player->setInvincible(debug->getEnabled());
|
||||
this->player->setInvincible(debug->getEnabled());
|
||||
board.music = !debug->getEnabled();
|
||||
|
||||
section.name = SECTION_PROG_GAME;
|
||||
@@ -373,7 +374,7 @@ void Game::checkEndGame()
|
||||
// Mata al jugador
|
||||
void Game::killPlayer()
|
||||
{
|
||||
if (player->getInvincible())
|
||||
if (this->player->getInvincible())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -382,7 +383,7 @@ void Game::killPlayer()
|
||||
|
||||
// Destruye la habitacion y el jugador
|
||||
delete room;
|
||||
delete player;
|
||||
delete this->player;
|
||||
|
||||
// Sonido
|
||||
JA_PlaySound(deathSound);
|
||||
@@ -391,10 +392,11 @@ void Game::killPlayer()
|
||||
|
||||
// Crea la nueva habitación y el nuevo jugador
|
||||
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, debug);
|
||||
player = new Player(spawnPoint, "player.png", "player.ani", renderer, resource, asset, options, input, room, debug);
|
||||
const player_t player = {spawnPoint, "player.png", "player.ani", renderer, resource, asset, options, input, room, debug};
|
||||
this->player = new Player(player);
|
||||
|
||||
room->pause();
|
||||
player->pause();
|
||||
this->player->pause();
|
||||
}
|
||||
|
||||
// Recarga todas las texturas
|
||||
|
||||
@@ -48,7 +48,7 @@ private:
|
||||
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
|
||||
section_t section; // Seccion actual dentro del juego
|
||||
std::string currentRoom; // Fichero de la habitación actual
|
||||
player_t spawnPoint; // Lugar de la habitación donde aparece el jugador
|
||||
playerSpawn_t spawnPoint; // Lugar de la habitación donde aparece el jugador
|
||||
JA_Sound deathSound; // Sonido a reproducir cuando muere el jugador
|
||||
board_t board; // Estructura con los datos del marcador
|
||||
bool paused; // Indica si el juego se encuentra en pausa
|
||||
|
||||
@@ -3,20 +3,19 @@
|
||||
#include <sstream>
|
||||
|
||||
// Constructor
|
||||
Player::Player(player_t ini, std::string png, std::string animation, SDL_Renderer *renderer, Resource *resource, Asset *asset, options_t *options, Input *input, Room *room, Debug *debug)
|
||||
Player::Player(player_t player)
|
||||
{
|
||||
// Obten punteros a objetos
|
||||
this->resource = resource;
|
||||
this->asset = asset;
|
||||
this->renderer = renderer;
|
||||
this->input = input;
|
||||
this->room = room;
|
||||
this->debug = debug;
|
||||
this->options = options;
|
||||
this->resource = player.resource;
|
||||
this->asset = player.asset;
|
||||
this->renderer = player.renderer;
|
||||
this->input = player.input;
|
||||
this->room = player.room;
|
||||
this->debug = player.debug;
|
||||
this->options = player.options;
|
||||
|
||||
// Crea objetos
|
||||
//texture = resource->getTexture(png);
|
||||
sprite = new AnimatedSprite(renderer, resource->getAnimation(animation));
|
||||
sprite = new AnimatedSprite(renderer, resource->getAnimation(player.animation));
|
||||
|
||||
// Inicializa variables
|
||||
color = stringToColor(options->palette, "white");
|
||||
@@ -28,24 +27,24 @@ Player::Player(player_t ini, std::string png, std::string animation, SDL_Rendere
|
||||
maxFallHeight = BLOCK * 4;
|
||||
paused = false;
|
||||
|
||||
jumpIni = ini.jumpIni;
|
||||
state = ini.state;
|
||||
jumpIni = player.spawn.jumpIni;
|
||||
state = player.spawn.state;
|
||||
prevState = state;
|
||||
|
||||
x = ini.x;
|
||||
y = ini.y;
|
||||
vx = ini.vx;
|
||||
vy = ini.vy;
|
||||
x = player.spawn.x;
|
||||
y = player.spawn.y;
|
||||
vx = player.spawn.vx;
|
||||
vy = player.spawn.vy;
|
||||
w = 8;
|
||||
h = 16;
|
||||
maxVY = 1.2f;
|
||||
|
||||
sprite->setPosX(ini.x);
|
||||
sprite->setPosY(ini.y);
|
||||
sprite->setPosX(player.spawn.x);
|
||||
sprite->setPosY(player.spawn.y);
|
||||
sprite->setWidth(8);
|
||||
sprite->setHeight(16);
|
||||
|
||||
sprite->setFlip(ini.flip);
|
||||
sprite->setFlip(player.spawn.flip);
|
||||
sprite->setCurrentAnimation("walk");
|
||||
sprite->animate();
|
||||
|
||||
@@ -670,9 +669,9 @@ bool Player::checkKillingTiles()
|
||||
}
|
||||
|
||||
// Obtiene algunos parametros del jugador
|
||||
player_t Player::getSpawnParams()
|
||||
playerSpawn_t Player::getSpawnParams()
|
||||
{
|
||||
player_t params;
|
||||
playerSpawn_t params;
|
||||
|
||||
params.x = x;
|
||||
params.y = y;
|
||||
|
||||
@@ -22,7 +22,7 @@ enum state_e
|
||||
s_falling
|
||||
};
|
||||
|
||||
struct player_t
|
||||
struct playerSpawn_t
|
||||
{
|
||||
float x;
|
||||
float y;
|
||||
@@ -33,6 +33,20 @@ struct player_t
|
||||
SDL_RendererFlip flip;
|
||||
};
|
||||
|
||||
struct player_t
|
||||
{
|
||||
playerSpawn_t spawn;
|
||||
std::string png;
|
||||
std::string animation;
|
||||
SDL_Renderer *renderer;
|
||||
Resource *resource;
|
||||
Asset *asset;
|
||||
options_t *options;
|
||||
Input *input;
|
||||
Room *room;
|
||||
Debug *debug;
|
||||
};
|
||||
|
||||
class Player
|
||||
{
|
||||
public:
|
||||
@@ -42,7 +56,6 @@ public:
|
||||
Resource *resource; // Objeto con los recursos
|
||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||
Room *room; // Objeto encargado de gestionar cada habitación del juego
|
||||
//Texture *texture; // Textura con los graficos del enemigo
|
||||
AnimatedSprite *sprite; // Sprite del enemigo
|
||||
Debug *debug; // Objeto para gestionar la información de debug
|
||||
options_t *options; // Puntero a las opciones del juego
|
||||
@@ -130,7 +143,7 @@ public:
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Player(player_t ini, std::string png, std::string animation, SDL_Renderer *renderer, Resource *resource, Asset *asset, options_t *options, Input *input, Room *room, Debug *debug);
|
||||
Player(player_t player);
|
||||
|
||||
// Destructor
|
||||
~Player();
|
||||
@@ -157,7 +170,7 @@ public:
|
||||
SDL_Rect &getCollider();
|
||||
|
||||
// Obtiene algunos parametros del jugador
|
||||
player_t getSpawnParams();
|
||||
playerSpawn_t getSpawnParams();
|
||||
|
||||
// Recarga la textura
|
||||
void reLoadTexture();
|
||||
|
||||
Reference in New Issue
Block a user