fix: corregido error al dibujar texturas desde gif. Faltaba activar el blendmode
añadidas mas paletas para el jugador1 cambiada la manera de representar la inmunidad para el jugador
This commit is contained in:
BIN
data/gfx/player1_pal2.gif
Normal file
BIN
data/gfx/player1_pal2.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 173 B |
BIN
data/gfx/player1_pal3.gif
Normal file
BIN
data/gfx/player1_pal3.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 173 B |
@@ -38,7 +38,8 @@ Texture::Texture(SDL_Renderer *renderer, std::string path, bool verbose)
|
|||||||
surface = loadSurface(path.c_str());
|
surface = loadSurface(path.c_str());
|
||||||
addPalette(path.c_str());
|
addPalette(path.c_str());
|
||||||
setPaletteColor(0, 0, 0x00000000);
|
setPaletteColor(0, 0, 0x00000000);
|
||||||
createBlank(renderer, width, height);
|
createBlank(renderer, width, height, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STREAMING);
|
||||||
|
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
|
||||||
flipSurface();
|
flipSurface();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -76,7 +77,7 @@ bool Texture::loadFromFile(std::string path, SDL_Renderer *renderer, bool verbos
|
|||||||
if (req_format == STBI_rgb)
|
if (req_format == STBI_rgb)
|
||||||
{
|
{
|
||||||
depth = 24;
|
depth = 24;
|
||||||
pitch = 3 * width; // 3 bytes por pixel * pixels per linea
|
pitch = 3 * width; // 3 bytes por pixel * pixels por linea
|
||||||
pixel_format = SDL_PIXELFORMAT_RGB24;
|
pixel_format = SDL_PIXELFORMAT_RGB24;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -365,6 +365,8 @@ bool Director::setFileList()
|
|||||||
|
|
||||||
asset->add(prefix + "/data/gfx/player1.gif", t_bitmap);
|
asset->add(prefix + "/data/gfx/player1.gif", t_bitmap);
|
||||||
asset->add(prefix + "/data/gfx/player1_pal1.gif", t_bitmap);
|
asset->add(prefix + "/data/gfx/player1_pal1.gif", t_bitmap);
|
||||||
|
asset->add(prefix + "/data/gfx/player1_pal2.gif", t_bitmap);
|
||||||
|
asset->add(prefix + "/data/gfx/player1_pal3.gif", t_bitmap);
|
||||||
asset->add(prefix + "/data/gfx/player2.gif", t_bitmap);
|
asset->add(prefix + "/data/gfx/player2.gif", t_bitmap);
|
||||||
asset->add(prefix + "/data/gfx/player.ani", t_data);
|
asset->add(prefix + "/data/gfx/player.ani", t_data);
|
||||||
asset->add(prefix + "/data/gfx/player1_power.gif", t_bitmap);
|
asset->add(prefix + "/data/gfx/player1_power.gif", t_bitmap);
|
||||||
|
|||||||
@@ -455,6 +455,8 @@ void Game::loadMedia()
|
|||||||
// Texturas - Player1
|
// Texturas - Player1
|
||||||
Texture *player1 = new Texture(renderer, asset->get("player1.gif"));
|
Texture *player1 = new Texture(renderer, asset->get("player1.gif"));
|
||||||
player1->addPalette(asset->get("player1_pal1.gif"));
|
player1->addPalette(asset->get("player1_pal1.gif"));
|
||||||
|
player1->addPalette(asset->get("player1_pal2.gif"));
|
||||||
|
player1->addPalette(asset->get("player1_pal3.gif"));
|
||||||
player1Textures.push_back(player1);
|
player1Textures.push_back(player1);
|
||||||
|
|
||||||
Texture *player1Power = new Texture(renderer, asset->get("player1_power.gif"));
|
Texture *player1Power = new Texture(renderer, asset->get("player1_power.gif"));
|
||||||
|
|||||||
@@ -155,32 +155,12 @@ void Player::move()
|
|||||||
// Pinta el jugador en pantalla
|
// Pinta el jugador en pantalla
|
||||||
void Player::render()
|
void Player::render()
|
||||||
{
|
{
|
||||||
if (isAlive())
|
if (powerUp)
|
||||||
{
|
{
|
||||||
if (invulnerable)
|
powerSprite->render();
|
||||||
{
|
|
||||||
if ((invulnerableCounter % 6) > 2)
|
|
||||||
{
|
|
||||||
if (powerUp)
|
|
||||||
{
|
|
||||||
powerSprite->render();
|
|
||||||
}
|
|
||||||
playerSprite->render();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (powerUp)
|
|
||||||
{
|
|
||||||
powerSprite->render();
|
|
||||||
}
|
|
||||||
playerSprite->render();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerSprite->render();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
playerSprite->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Establece el estado del jugador cuando camina
|
// Establece el estado del jugador cuando camina
|
||||||
@@ -302,6 +282,10 @@ void Player::update()
|
|||||||
updateCooldown();
|
updateCooldown();
|
||||||
updatePowerUpCounter();
|
updatePowerUpCounter();
|
||||||
updateInvulnerableCounter();
|
updateInvulnerableCounter();
|
||||||
|
if (invulnerable)
|
||||||
|
{
|
||||||
|
invulnerableCounter % 8 > 3 ? playerSprite->getTexture()->setPalette(coffees) : playerSprite->getTexture()->setPalette(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene la puntuación del jugador
|
// Obtiene la puntuación del jugador
|
||||||
@@ -407,6 +391,7 @@ void Player::updateInvulnerableCounter()
|
|||||||
{
|
{
|
||||||
invulnerable = false;
|
invulnerable = false;
|
||||||
invulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
invulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
||||||
|
playerSprite->getTexture()->setPalette(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -464,6 +449,7 @@ void Player::giveExtraHit()
|
|||||||
{
|
{
|
||||||
coffees++;
|
coffees++;
|
||||||
}
|
}
|
||||||
|
playerSprite->getTexture()->setPalette(coffees);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Quita el toque extra al jugador
|
// Quita el toque extra al jugador
|
||||||
@@ -481,6 +467,7 @@ void Player::removeExtraHit()
|
|||||||
|
|
||||||
invulnerable = true;
|
invulnerable = true;
|
||||||
invulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
invulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
|
||||||
|
playerSprite->getTexture()->setPalette(coffees);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Habilita la entrada de ordenes
|
// Habilita la entrada de ordenes
|
||||||
|
|||||||
Reference in New Issue
Block a user