Actualizadas las clases sprite, movingsprite y animatedsprite

This commit is contained in:
2022-08-29 20:02:46 +02:00
parent 47c57a9f44
commit 9c2140b274
29 changed files with 726 additions and 802 deletions

View File

@@ -5,19 +5,19 @@
// CAUTION!!!!! si no se gasta al final, quitar la referencia a la habitación
// Constructor
Player::Player(player_t ini, std::string _tileset, SDL_Renderer *_renderer, Asset *_asset, Input *_input, Room *_room)
Player::Player(player_t ini, std::string tileset, std::string animation, SDL_Renderer *renderer, Asset *asset, Input *input, Room *room)
{
// Obten punteros a objetos
asset = _asset;
renderer = _renderer;
input = _input;
this->asset = asset;
this->renderer = renderer;
this->input = input;
// Crea objetos
texture = new LTexture();
sprite = new AnimatedSprite(texture, renderer);
sprite = new AnimatedSprite(texture, renderer, animation);
// Carga la textura
loadTextureFromFile(texture, asset->get(_tileset), renderer);
loadTextureFromFile(texture, asset->get(tileset), renderer);
// Inicializa variables
color = stringToColor("white");
@@ -31,19 +31,8 @@ Player::Player(player_t ini, std::string _tileset, SDL_Renderer *_renderer, Asse
sprite->setPosY(ini.y);
sprite->setVelX(ini.vx);
sprite->setVelY(ini.vy);
sprite->setWidth(8);
sprite->setHeight(16);
sprite->setCurrentFrame(0);
sprite->setAnimationCounter(0);
sprite->setAnimationNumFrames(0, 4);
sprite->setAnimationSpeed(0, 5);
sprite->setAnimationLoop(0, true);
sprite->setAnimationFrames(0, 0, 8 * 0, 0, 8, 16);
sprite->setAnimationFrames(0, 1, 8 * 1, 0, 8, 16);
sprite->setAnimationFrames(0, 2, 8 * 2, 0, 8, 16);
sprite->setAnimationFrames(0, 3, 8 * 3, 0, 8, 16);
sprite->setSpriteClip(sprite->getAnimationClip(0, 0));
sprite->setFlip(ini.flip);
@@ -270,7 +259,11 @@ void Player::move()
sprite->update();
if (sprite->getVelX() != 0)
{
sprite->animate(0);
sprite->setCurrentAnimation("walk");
}
else
{
sprite->setCurrentAnimation("stand");
}
}