Trabajando con las rampas

This commit is contained in:
2022-09-06 14:03:12 +02:00
parent 189b933622
commit 066a9ab811
3 changed files with 15 additions and 6 deletions

View File

@@ -22,7 +22,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input, D
scoreboard = new ScoreBoard(renderer, asset, &playerLives, &itemsPicked, &clock); scoreboard = new ScoreBoard(renderer, asset, &playerLives, &itemsPicked, &clock);
itemTracker = new ItemTracker(); itemTracker = new ItemTracker();
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked); room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked);
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room); player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room, debug);
eventHandler = new SDL_Event(); eventHandler = new SDL_Event();
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer); text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
debugText = new Text(asset->get("debug.png"), asset->get("debug.txt"), renderer); debugText = new Text(asset->get("debug.png"), asset->get("debug.txt"), renderer);
@@ -221,7 +221,7 @@ void Game::renderDebugInfo()
} }
// Borra el marcador // Borra el marcador
const SDL_Rect rect = {0, 17 * BLOCK, PLAY_AREA_WIDTH, GAMECANVAS_HEIGHT - PLAY_AREA_HEIGHT}; SDL_Rect rect = {0, 17 * BLOCK, PLAY_AREA_WIDTH, GAMECANVAS_HEIGHT - PLAY_AREA_HEIGHT};
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderFillRect(renderer, &rect); SDL_RenderFillRect(renderer, &rect);
@@ -236,8 +236,13 @@ void Game::renderDebugInfo()
SDL_RenderDrawLine(renderer, i, 0, i, PLAY_AREA_BOTTOM - 1); SDL_RenderDrawLine(renderer, i, 0, i, PLAY_AREA_BOTTOM - 1);
} }
// Pinta mascaras de sprite
SDL_SetRenderDrawColor(renderer, 0, 255, 0, 192);
rect = player->getRect();
SDL_RenderFillRect(renderer, &rect);
// Pinta el texto // Pinta el texto
debug->setPos({1, 152}); debug->setPos({1, 17 * 8});
debug->render(); debug->render();
} }
@@ -327,7 +332,7 @@ void Game::killPlayer()
// Crea la nueva habitación y el nuevo jugador // Crea la nueva habitación y el nuevo jugador
room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked); room = new Room(asset->get(currentRoom), renderer, screen, asset, itemTracker, &itemsPicked);
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room); player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room, debug);
} }
// Recarga todas las texturas // Recarga todas las texturas

View File

@@ -3,13 +3,14 @@
#include <sstream> #include <sstream>
// Constructor // Constructor
Player::Player(player_t ini, std::string tileset, std::string animation, 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, Debug *debug)
{ {
// Obten punteros a objetos // Obten punteros a objetos
this->asset = asset; this->asset = asset;
this->renderer = renderer; this->renderer = renderer;
this->input = input; this->input = input;
this->room = room; this->room = room;
this->debug = debug;
// Crea objetos // Crea objetos
texture = new LTexture(renderer, asset->get(tileset)); texture = new LTexture(renderer, asset->get(tileset));
@@ -241,6 +242,7 @@ void Player::move()
else else
{ {
tile_e slope = checkSlopes(); tile_e slope = checkSlopes();
debug->add("SLOPE = " + std::to_string(slope));
if (slope != t_empty) if (slope != t_empty)
{ // Cuesta hacia la derecha { // Cuesta hacia la derecha
if (slope == t_slope_r) if (slope == t_slope_r)

View File

@@ -7,6 +7,7 @@
#include "animatedsprite.h" #include "animatedsprite.h"
#include "input.h" #include "input.h"
#include "const.h" #include "const.h"
#include "debug.h"
#include <string> #include <string>
#include <vector> #include <vector>
@@ -47,6 +48,7 @@ public:
Room *room; // Objeto encargado de gestionar cada habitación del juego Room *room; // Objeto encargado de gestionar cada habitación del juego
LTexture *texture; // Textura con los graficos del enemigo LTexture *texture; // Textura con los graficos del enemigo
AnimatedSprite *sprite; // Sprite del enemigo AnimatedSprite *sprite; // Sprite del enemigo
Debug *debug; // Objeto para gestionar la información de debug
color_t color; // Color del jugador color_t color; // Color del jugador
SDL_Rect colliderBox; // Caja de colisión con los enemigos u objetos SDL_Rect colliderBox; // Caja de colisión con los enemigos u objetos
std::vector<SDL_Point> colliderPoints; // Puntos de colisión con el mapa std::vector<SDL_Point> colliderPoints; // Puntos de colisión con el mapa
@@ -101,7 +103,7 @@ public:
public: public:
// Constructor // Constructor
Player(player_t ini, std::string tileset, std::string animation, SDL_Renderer *renderer, Asset *asset, Input *input, Room *room); Player(player_t ini, std::string tileset, std::string animation, SDL_Renderer *renderer, Asset *asset, Input *input, Room *room, Debug *debug);
// Destructor // Destructor
~Player(); ~Player();