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
// 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

View File

@@ -212,7 +212,7 @@ bool Director::initSDL()
void Director::initObjects()
{
eventHandler = new SDL_Event();
text.white = new Text();
text.white = new Text("",nullptr,nullptr);
}
// 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);
background = new Sprite();
background->init(texture3, renderer);
background->setTexture(texture3);
background->setRenderer(renderer);
background->setSpriteClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
src_rect = {0, 0, 0, 0};

View File

@@ -1,20 +1,7 @@
#include "sprite.h"
// Constructor
Sprite::Sprite()
{
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)
Sprite::Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer)
{
// Establece el alto y el ancho del sprite
setWidth(w);
@@ -31,19 +18,21 @@ Sprite::~Sprite()
setTexture(texture);
// Establece el rectangulo de donde coger la imagen
setSpriteClip(0, 0, w, h);
}*/
setSpriteClip(x, y, w, h);
// Inicializador
void Sprite::init(LTexture *texture, SDL_Renderer *renderer, SDL_Rect rect)
// Inicializa variables
setEnabled(true);
}
Sprite::Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
{
// Establece el alto y el ancho del sprite
mWidth = rect.w;
mHeight = rect.h;
setWidth(rect.w);
setHeight(rect.h);
// Establece la posición X,Y del sprite
mPosX = rect.x;
mPosY = rect.y;
setPosX(rect.x);
setPosY(rect.y);
// Establece el puntero al renderizador de la ventana
setRenderer(renderer);
@@ -53,13 +42,26 @@ void Sprite::init(LTexture *texture, SDL_Renderer *renderer, SDL_Rect rect)
// Establece el rectangulo de donde coger la imagen
setSpriteClip(rect);
// Inicializa variables
setEnabled(true);
}
// Destructor
Sprite::~Sprite()
{
mTexture = nullptr;
mRenderer = nullptr;
}
// Muestra el sprite por pantalla
void Sprite::render()
{
if (mEnabled)
{
mTexture->render(mRenderer, mPosX, mPosY, &mSpriteClip);
}
}
// Obten el valor de la variable
int Sprite::getPosX()
@@ -74,13 +76,13 @@ int Sprite::getPosY()
}
// Obten el valor de la variable
Uint16 Sprite::getWidth()
int Sprite::getWidth()
{
return mWidth;
}
// Obten el valor de la variable
Uint16 Sprite::getHeight()
int Sprite::getHeight()
{
return mHeight;
}
@@ -98,13 +100,13 @@ void Sprite::setPosY(int y)
}
// Establece el valor de la variable
void Sprite::setWidth(Uint16 w)
void Sprite::setWidth(int w)
{
mWidth = w;
}
// Establece el valor de la variable
void Sprite::setHeight(Uint16 h)
void Sprite::setHeight(int h)
{
mHeight = h;
}
@@ -116,7 +118,13 @@ SDL_Rect Sprite::getSpriteClip()
}
// 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.y = y;
@@ -124,12 +132,6 @@ void Sprite::setSpriteClip(int x, int y, Uint16 w, Uint16 h)
mSpriteClip.h = h;
}
// Establece el valor de la variable
void Sprite::setSpriteClip(SDL_Rect rect)
{
mSpriteClip = rect;
}
// Obten el valor de la variable
LTexture *Sprite::getTexture()
{
@@ -147,3 +149,22 @@ void Sprite::setRenderer(SDL_Renderer *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
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:
// 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
~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
void render();
@@ -29,10 +38,10 @@ public:
int getPosY();
// Obten el valor de la variable
Uint16 getWidth();
int getWidth();
// Obten el valor de la variable
Uint16 getHeight();
int getHeight();
// Establece el valor de la variable
void setPosX(int x);
@@ -41,18 +50,20 @@ public:
void setPosY(int y);
// Establece el valor de la variable
void setWidth(Uint16 w);
void setWidth(int w);
// Establece el valor de la variable
void setHeight(Uint16 h);
void setHeight(int h);
// Obten el valor de la variable
SDL_Rect getSpriteClip();
// Establece el valor de la variable
void setSpriteClip(int x, int y, Uint16 w, Uint16 h);
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
LTexture *getTexture();
@@ -62,16 +73,14 @@ public:
// Establece el valor de la variable
void setRenderer(SDL_Renderer *renderer);
protected:
int mPosX; // Posición X donde dibujar el sprite
int mPosY; // Posición Y donde dibujar el sprite
// Establece el valor de la variable
void setEnabled(bool value);
Uint16 mWidth; // Ancho del sprite
Uint16 mHeight; // Alto del sprite
// Comprueba si el objeto está habilitado
bool isEnabled();
SDL_Renderer *mRenderer; // Puntero al renderizador
LTexture *mTexture; // Textura donde estan todos los dibujos del sprite
SDL_Rect mSpriteClip; // Rectangulo que apunta a la posición de la textura donde está el grafico que se dibujará en pantalla
// Devuelve el rectangulo donde está el sprite
SDL_Rect getRect();
};
#endif