Actualizada la librería sprite.h

This commit is contained in:
2022-08-08 19:25:03 +02:00
parent a180f1db46
commit c5acab7828
7 changed files with 280 additions and 55 deletions

BIN
media/font/8bithud.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

194
media/font/8bithud.txt Normal file
View File

@@ -0,0 +1,194 @@
# box width
8
# box height
8
# 32 espacio ( )
2
# 33 !
2
# 34 "
5
# 35 #
6
# 36 $
6
# 37 %
6
# 38 &
6
# 39 '
2
# 40 (
3
# 41 )
3
# 42 *
4
# 43 +
3
# 44 ,
2
# 45 -
3
# 46 .
2
# 47 /
4
# 48 0
6
# 49 1
6
# 50 2
6
# 51 3
6
# 52 4
6
# 53 5
6
# 54 6
6
# 55 7
6
# 56 8
6
# 57 9
6
# 58 :
2
# 59 ;
2
# 60 <
4
# 61 =
3
# 62 >
4
# 63 ?
6
# 64 @
8
# 65 A
6
# 66 B
6
# 67 C
6
# 68 D
6
# 69 E
6
# 70 F
6
# 71 G
6
# 72 H
6
# 73 I
6
# 74 J
6
# 75 K
6
# 76 L
6
# 77 M
6
# 78 N
6
# 79 O
6
# 80 P
6
# 81 Q
6
# 82 R
6
# 83 S
6
# 84 T
6
# 85 U
6
# 86 V
5
# 87 W
6
# 88 X
6
# 89 Y
6
# 90 Z
6
# 91 [
3
# 92 \
5
# 93 ]
3
# 94 ^
4
# 95 _
6
# 96 `
2
# 97 a
5
# 98 b
5
# 99 c
5
# 100 d
5
# 101 e
5
# 102 f
5
# 103 g
5
# 104 h
5
# 105 i
4
# 106 j
5
# 107 k
5
# 108 l
5
# 109 m
6
# 110 n
5
# 111 o
5
# 112 p
5
# 113 q
5
# 114 r
5
# 115 s
5
# 116 t
4
# 117 u
5
# 118 v
5
# 119 w
6
# 120 x
4
# 121 y
4
# 122 z
5
# 123 {
3
# 124 |
2
# 125 }
3
# 126 ~
3

View File

@@ -6,7 +6,7 @@
#define CONST_H #define CONST_H
// Textos // Textos
#define WINDOW_CAPTION "Volcano (@2016,2021 JailDesigner v0.5)" #define WINDOW_CAPTION "Volcano (©2016,2022 JailDesigner v0.6)"
const Uint8 GAME_SPEED = 24; //16 = normal-rapido, 24 = normal. Cuanto mas pequeño, más rápido const Uint8 GAME_SPEED = 24; //16 = normal-rapido, 24 = normal. Cuanto mas pequeño, más rápido

View File

@@ -212,7 +212,7 @@ bool Director::initSDL()
void Director::initObjects() void Director::initObjects()
{ {
eventHandler = new SDL_Event(); eventHandler = new SDL_Event();
text.white = new Text(); text.white = new Text("",nullptr,nullptr);
} }
// Borra los objetos del programa // Borra los objetos del programa

View File

@@ -31,7 +31,8 @@ void Map::init(SDL_Renderer *renderer, LTexture *texture1, LTexture *texture2, L
sprite_actor->init(texture2, renderer); sprite_actor->init(texture2, renderer);
background = new Sprite(); background = new Sprite();
background->init(texture3, renderer); background->setTexture(texture3);
background->setRenderer(renderer);
background->setSpriteClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); background->setSpriteClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
src_rect = {0, 0, 0, 0}; src_rect = {0, 0, 0, 0};

View File

@@ -1,20 +1,7 @@
#include "sprite.h" #include "sprite.h"
// Constructor // Constructor
Sprite::Sprite() Sprite::Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer)
{
init(nullptr, nullptr);
}
// Destructor
Sprite::~Sprite()
{
mTexture = nullptr;
mRenderer = nullptr;
}
// Inicializador
/*void Sprite::init(LTexture *texture, SDL_Renderer *renderer, int x, int y, Uint16 w, Uint16 h)
{ {
// Establece el alto y el ancho del sprite // Establece el alto y el ancho del sprite
setWidth(w); setWidth(w);
@@ -31,19 +18,21 @@ Sprite::~Sprite()
setTexture(texture); setTexture(texture);
// Establece el rectangulo de donde coger la imagen // Establece el rectangulo de donde coger la imagen
setSpriteClip(0, 0, w, h); setSpriteClip(x, y, w, h);
}*/
// Inicializador // Inicializa variables
void Sprite::init(LTexture *texture, SDL_Renderer *renderer, SDL_Rect rect) setEnabled(true);
}
Sprite::Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
{ {
// Establece el alto y el ancho del sprite // Establece el alto y el ancho del sprite
mWidth = rect.w; setWidth(rect.w);
mHeight = rect.h; setHeight(rect.h);
// Establece la posición X,Y del sprite // Establece la posición X,Y del sprite
mPosX = rect.x; setPosX(rect.x);
mPosY = rect.y; setPosY(rect.y);
// Establece el puntero al renderizador de la ventana // Establece el puntero al renderizador de la ventana
setRenderer(renderer); setRenderer(renderer);
@@ -53,12 +42,25 @@ void Sprite::init(LTexture *texture, SDL_Renderer *renderer, SDL_Rect rect)
// Establece el rectangulo de donde coger la imagen // Establece el rectangulo de donde coger la imagen
setSpriteClip(rect); setSpriteClip(rect);
// Inicializa variables
setEnabled(true);
}
// Destructor
Sprite::~Sprite()
{
mTexture = nullptr;
mRenderer = nullptr;
} }
// Muestra el sprite por pantalla // Muestra el sprite por pantalla
void Sprite::render() void Sprite::render()
{ {
mTexture->render(mRenderer, mPosX, mPosY, &mSpriteClip); if (mEnabled)
{
mTexture->render(mRenderer, mPosX, mPosY, &mSpriteClip);
}
} }
// Obten el valor de la variable // Obten el valor de la variable
@@ -74,13 +76,13 @@ int Sprite::getPosY()
} }
// Obten el valor de la variable // Obten el valor de la variable
Uint16 Sprite::getWidth() int Sprite::getWidth()
{ {
return mWidth; return mWidth;
} }
// Obten el valor de la variable // Obten el valor de la variable
Uint16 Sprite::getHeight() int Sprite::getHeight()
{ {
return mHeight; return mHeight;
} }
@@ -98,13 +100,13 @@ void Sprite::setPosY(int y)
} }
// Establece el valor de la variable // Establece el valor de la variable
void Sprite::setWidth(Uint16 w) void Sprite::setWidth(int w)
{ {
mWidth = w; mWidth = w;
} }
// Establece el valor de la variable // Establece el valor de la variable
void Sprite::setHeight(Uint16 h) void Sprite::setHeight(int h)
{ {
mHeight = h; mHeight = h;
} }
@@ -116,7 +118,13 @@ SDL_Rect Sprite::getSpriteClip()
} }
// Establece el valor de la variable // Establece el valor de la variable
void Sprite::setSpriteClip(int x, int y, Uint16 w, Uint16 h) void Sprite::setSpriteClip(SDL_Rect rect)
{
mSpriteClip = rect;
}
// Establece el valor de la variable
void Sprite::setSpriteClip(int x, int y, int w, int h)
{ {
mSpriteClip.x = x; mSpriteClip.x = x;
mSpriteClip.y = y; mSpriteClip.y = y;
@@ -124,12 +132,6 @@ void Sprite::setSpriteClip(int x, int y, Uint16 w, Uint16 h)
mSpriteClip.h = h; mSpriteClip.h = h;
} }
// Establece el valor de la variable
void Sprite::setSpriteClip(SDL_Rect rect)
{
mSpriteClip = rect;
}
// Obten el valor de la variable // Obten el valor de la variable
LTexture *Sprite::getTexture() LTexture *Sprite::getTexture()
{ {
@@ -146,4 +148,23 @@ void Sprite::setTexture(LTexture *texture)
void Sprite::setRenderer(SDL_Renderer *renderer) void Sprite::setRenderer(SDL_Renderer *renderer)
{ {
mRenderer = renderer; mRenderer = renderer;
}
// Establece el valor de la variable
void Sprite::setEnabled(bool value)
{
mEnabled = value;
}
// Comprueba si el objeto está habilitado
bool Sprite::isEnabled()
{
return mEnabled;
}
// Devuelve el rectangulo donde está el sprite
SDL_Rect Sprite::getRect()
{
SDL_Rect rect = {getPosX(), getPosY(), getWidth(), getHeight()};
return rect;
} }

View File

@@ -8,17 +8,26 @@
// Clase sprite // Clase sprite
class Sprite class Sprite
{ {
protected:
int mPosX; // Posición en el eje X donde dibujar el sprite
int mPosY; // Posición en el eje Y donde dibujar el sprite
Uint16 mWidth; // Ancho del sprite
Uint16 mHeight; // Alto del sprite
SDL_Renderer *mRenderer; // Puntero al renderizador de la ventana
LTexture *mTexture; // Textura donde estan todos los dibujos del sprite
SDL_Rect mSpriteClip; // Rectangulo de origen de la textura que se dibujará en pantalla
bool mEnabled; // Indica si el sprite esta habilitado
public: public:
// Constructor // Constructor
Sprite(); Sprite(int x = 0, int y = 0, int w = 0, int h = 0, LTexture *texture = nullptr, SDL_Renderer *renderer = nullptr);
Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer);
// Destructor // Destructor
~Sprite(); ~Sprite();
// Inicializador
//void init(LTexture *texture, SDL_Renderer *renderer, int x = 0, int y = 0, Uint16 w = 0, Uint16 h = 0);
void init(LTexture *texture, SDL_Renderer *renderer, SDL_Rect rect = {0, 0, 0, 0});
// Muestra el sprite por pantalla // Muestra el sprite por pantalla
void render(); void render();
@@ -29,10 +38,10 @@ public:
int getPosY(); int getPosY();
// Obten el valor de la variable // Obten el valor de la variable
Uint16 getWidth(); int getWidth();
// Obten el valor de la variable // Obten el valor de la variable
Uint16 getHeight(); int getHeight();
// Establece el valor de la variable // Establece el valor de la variable
void setPosX(int x); void setPosX(int x);
@@ -41,18 +50,20 @@ public:
void setPosY(int y); void setPosY(int y);
// Establece el valor de la variable // Establece el valor de la variable
void setWidth(Uint16 w); void setWidth(int w);
// Establece el valor de la variable // Establece el valor de la variable
void setHeight(Uint16 h); void setHeight(int h);
// Obten el valor de la variable // Obten el valor de la variable
SDL_Rect getSpriteClip(); SDL_Rect getSpriteClip();
// Establece el valor de la variable // Establece el valor de la variable
void setSpriteClip(int x, int y, Uint16 w, Uint16 h);
void setSpriteClip(SDL_Rect rect); void setSpriteClip(SDL_Rect rect);
// Establece el valor de la variable
void setSpriteClip(int x, int y, int w, int h);
// Obten el valor de la variable // Obten el valor de la variable
LTexture *getTexture(); LTexture *getTexture();
@@ -62,16 +73,14 @@ public:
// Establece el valor de la variable // Establece el valor de la variable
void setRenderer(SDL_Renderer *renderer); void setRenderer(SDL_Renderer *renderer);
protected: // Establece el valor de la variable
int mPosX; // Posición X donde dibujar el sprite void setEnabled(bool value);
int mPosY; // Posición Y donde dibujar el sprite
Uint16 mWidth; // Ancho del sprite // Comprueba si el objeto está habilitado
Uint16 mHeight; // Alto del sprite bool isEnabled();
SDL_Renderer *mRenderer; // Puntero al renderizador // Devuelve el rectangulo donde está el sprite
LTexture *mTexture; // Textura donde estan todos los dibujos del sprite SDL_Rect getRect();
SDL_Rect mSpriteClip; // Rectangulo que apunta a la posición de la textura donde está el grafico que se dibujará en pantalla
}; };
#endif #endif