Implementadas las animaciones en el jugador
This commit is contained in:
@@ -1,10 +1,5 @@
|
||||
#include "player.h"
|
||||
|
||||
#define LEFT 0
|
||||
#define RIGHT 1
|
||||
|
||||
#define BASE_SPEED 0.5;
|
||||
|
||||
// Constructor
|
||||
Player::Player(SDL_Renderer *renderer, Asset *asset, Input *input)
|
||||
{
|
||||
@@ -19,32 +14,20 @@ Player::Player(SDL_Renderer *renderer, Asset *asset, Input *input)
|
||||
texture = new LTexture();
|
||||
loadTextureFromFile(texture, asset->get("player.png"), renderer);
|
||||
|
||||
sprite = new AnimatedSprite(texture, renderer);
|
||||
sprite = new AnimatedSprite(texture, renderer, asset->get("player.ani"));
|
||||
sprite->setPosX(16);
|
||||
sprite->setPosY(160 + 16 - 8);
|
||||
sprite->setSpriteClip(0, 0, 16, 24);
|
||||
sprite->load(asset->get("player.ani"));
|
||||
sprite->animate("stand");
|
||||
sprite->setPosY(168);
|
||||
sprite->setCurrentAnimation("stand");
|
||||
|
||||
direction = RIGHT;
|
||||
respawn_x = sprite->getPosX();
|
||||
respawn_y = sprite->getPosY();
|
||||
respawn_direction = direction;
|
||||
speed_x = BASE_SPEED;
|
||||
speed_y = 0;
|
||||
can_jump = true;
|
||||
jump_pressed_now = false;
|
||||
jump_pressed_before = false;
|
||||
standing = true;
|
||||
invulnerable = true;
|
||||
jumpforce = 10;
|
||||
active_animation = 0;
|
||||
enabled = true;
|
||||
cooldown = 0;
|
||||
lifes = 10;
|
||||
coins = 0;
|
||||
for (Uint8 i = 0; i < 6; i++)
|
||||
key[i] = false;
|
||||
key.insert(key.end(), {0, 0, 0, 0, 0, 0});
|
||||
}
|
||||
|
||||
// Destructor
|
||||
@@ -65,14 +48,6 @@ void Player::update()
|
||||
{
|
||||
checkInput();
|
||||
sprite->update();
|
||||
if (sprite->getVelX() == 0)
|
||||
{
|
||||
sprite->animate("stand");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->animate("walk");
|
||||
}
|
||||
}
|
||||
|
||||
// Dibuja el objeto
|
||||
@@ -84,19 +59,23 @@ void Player::render()
|
||||
// Comprueba las entradas y modifica variables
|
||||
void Player::checkInput()
|
||||
{
|
||||
const float speed = 1.0f;
|
||||
// Solo comprueba las entradas de dirección cuando está de pie
|
||||
if (input->checkInput(INPUT_LEFT, REPEAT_TRUE))
|
||||
{
|
||||
sprite->setVelX(-0.6f);
|
||||
sprite->setVelX(-speed);
|
||||
sprite->setFlip(SDL_FLIP_NONE);
|
||||
sprite->setCurrentAnimation("walk");
|
||||
}
|
||||
else if (input->checkInput(INPUT_RIGHT, REPEAT_TRUE))
|
||||
{
|
||||
sprite->setVelX(0.6f);
|
||||
sprite->setVelX(speed);
|
||||
sprite->setFlip(SDL_FLIP_HORIZONTAL);
|
||||
sprite->setCurrentAnimation("walk");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->setVelX(0);
|
||||
sprite->setCurrentAnimation("stand");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user