El jugador ya empieza a moverse
This commit is contained in:
@@ -11,7 +11,7 @@ Game::Game(SDL_Renderer *renderer, Asset *asset, Screen *screen, Input *input)
|
|||||||
|
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
map = new Map(asset->get("01.map"), renderer, asset);
|
map = new Map(asset->get("01.map"), renderer, asset);
|
||||||
player = new Player(renderer, asset);
|
player = new Player(renderer, asset, input);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
@@ -72,6 +72,8 @@ void Game::update()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player->update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,10 +6,11 @@
|
|||||||
#define BASE_SPEED 0.5;
|
#define BASE_SPEED 0.5;
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Player::Player(SDL_Renderer *renderer, Asset *asset)
|
Player::Player(SDL_Renderer *renderer, Asset *asset, Input *input)
|
||||||
{
|
{
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
|
this->input = input;
|
||||||
|
|
||||||
sound_jump = JA_LoadSound(asset->get("sound_player_jump.wav").c_str());
|
sound_jump = JA_LoadSound(asset->get("sound_player_jump.wav").c_str());
|
||||||
sound_death = JA_LoadSound(asset->get("sound_player_death.wav").c_str());
|
sound_death = JA_LoadSound(asset->get("sound_player_death.wav").c_str());
|
||||||
@@ -60,6 +61,8 @@ Player::~Player()
|
|||||||
// Actualiza todas las variables
|
// Actualiza todas las variables
|
||||||
void Player::update()
|
void Player::update()
|
||||||
{
|
{
|
||||||
|
checkInput();
|
||||||
|
sprite->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dibuja el objeto
|
// Dibuja el objeto
|
||||||
@@ -67,3 +70,23 @@ void Player::render()
|
|||||||
{
|
{
|
||||||
sprite->render();
|
sprite->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Comprueba las entradas y modifica variables
|
||||||
|
void Player::checkInput()
|
||||||
|
{
|
||||||
|
// Solo comprueba las entradas de dirección cuando está de pie
|
||||||
|
if (input->checkInput(INPUT_LEFT, REPEAT_TRUE))
|
||||||
|
{
|
||||||
|
sprite->setVelX(-0.6f);
|
||||||
|
sprite->setFlip(SDL_FLIP_HORIZONTAL);
|
||||||
|
}
|
||||||
|
else if (input->checkInput(INPUT_RIGHT, REPEAT_TRUE))
|
||||||
|
{
|
||||||
|
sprite->setVelX(0.6f);
|
||||||
|
sprite->setFlip(SDL_FLIP_NONE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprite->setVelX(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
#include "jail_audio.h"
|
#include "jail_audio.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "input.h"
|
||||||
#include "animatedsprite.h"
|
#include "animatedsprite.h"
|
||||||
#include "asset.h"
|
#include "asset.h"
|
||||||
|
|
||||||
@@ -14,6 +15,7 @@ class Player
|
|||||||
private:
|
private:
|
||||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
|
Input *input; // Objeto Input para gestionar las entradas
|
||||||
AnimatedSprite *sprite; // Objeto con los graficos, animaciones y posición del jugador
|
AnimatedSprite *sprite; // Objeto con los graficos, animaciones y posición del jugador
|
||||||
LTexture *texture; // Textura con los graficos del jugador
|
LTexture *texture; // Textura con los graficos del jugador
|
||||||
|
|
||||||
@@ -40,9 +42,12 @@ private:
|
|||||||
Uint8 lifes; // Cantidad de vidas
|
Uint8 lifes; // Cantidad de vidas
|
||||||
Uint8 respawn_direction; // Dirección para revivir
|
Uint8 respawn_direction; // Dirección para revivir
|
||||||
|
|
||||||
|
// Comprueba las entradas y modifica variables
|
||||||
|
void checkInput();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Player(SDL_Renderer *renderer, Asset *asset);
|
Player(SDL_Renderer *renderer, Asset *asset, Input *input);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Player();
|
~Player();
|
||||||
|
|||||||
@@ -30,6 +30,28 @@ Prog::Prog(std::string executablePath)
|
|||||||
}
|
}
|
||||||
input = new Input(asset->get("gamecontrollerdb.txt"));
|
input = new Input(asset->get("gamecontrollerdb.txt"));
|
||||||
screen = new Screen(window, renderer, options);
|
screen = new Screen(window, renderer, options);
|
||||||
|
|
||||||
|
// Controles
|
||||||
|
input->bindKey(INPUT_UP, SDL_SCANCODE_UP);
|
||||||
|
input->bindKey(INPUT_DOWN, SDL_SCANCODE_DOWN);
|
||||||
|
input->bindKey(INPUT_LEFT, SDL_SCANCODE_LEFT);
|
||||||
|
input->bindKey(INPUT_RIGHT, SDL_SCANCODE_RIGHT);
|
||||||
|
input->bindKey(INPUT_ACCEPT, SDL_SCANCODE_RETURN);
|
||||||
|
input->bindKey(INPUT_CANCEL, SDL_SCANCODE_ESCAPE);
|
||||||
|
input->bindKey(INPUT_BUTTON_1, SDL_SCANCODE_SPACE);
|
||||||
|
input->bindKey(INPUT_BUTTON_2, SDL_SCANCODE_D);
|
||||||
|
input->bindKey(INPUT_BUTTON_PAUSE, SDL_SCANCODE_ESCAPE);
|
||||||
|
input->bindKey(INPUT_BUTTON_ESCAPE, SDL_SCANCODE_ESCAPE);
|
||||||
|
|
||||||
|
input->bindGameControllerButton(INPUT_UP, SDL_CONTROLLER_BUTTON_DPAD_UP);
|
||||||
|
input->bindGameControllerButton(INPUT_DOWN, SDL_CONTROLLER_BUTTON_DPAD_DOWN);
|
||||||
|
input->bindGameControllerButton(INPUT_LEFT, SDL_CONTROLLER_BUTTON_DPAD_LEFT);
|
||||||
|
input->bindGameControllerButton(INPUT_RIGHT, SDL_CONTROLLER_BUTTON_DPAD_RIGHT);
|
||||||
|
input->bindGameControllerButton(INPUT_ACCEPT, SDL_CONTROLLER_BUTTON_B);
|
||||||
|
input->bindGameControllerButton(INPUT_CANCEL, SDL_CONTROLLER_BUTTON_A);
|
||||||
|
input->bindGameControllerButton(INPUT_BUTTON_1, SDL_CONTROLLER_BUTTON_B);
|
||||||
|
input->bindGameControllerButton(INPUT_BUTTON_PAUSE, SDL_CONTROLLER_BUTTON_GUIDE);
|
||||||
|
input->bindGameControllerButton(INPUT_BUTTON_ESCAPE, SDL_CONTROLLER_BUTTON_GUIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Prog::~Prog()
|
Prog::~Prog()
|
||||||
|
|||||||
Reference in New Issue
Block a user