ahora se puede elegir el modo de la clase tiledbg
añadido modo estático a la clase tiledbg
This commit is contained in:
@@ -16,7 +16,7 @@ Instructions::Instructions(SDL_Renderer *renderer, Screen *screen, Asset *asset,
|
|||||||
// Creao objetos
|
// Creao objetos
|
||||||
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);
|
||||||
tiledbg = new Tiledbg(renderer, screen, asset, {0, 0, param->gameWidth, param->gameHeight});
|
tiledbg = new Tiledbg(renderer, screen, asset, {0, 0, param->gameWidth, param->gameHeight}, TILED_MODE_STATIC);
|
||||||
|
|
||||||
// Crea un backbuffer para el renderizador
|
// Crea un backbuffer para el renderizador
|
||||||
backbuffer = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param->gameWidth, param->gameHeight);
|
backbuffer = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, param->gameWidth, param->gameHeight);
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
#include "tiledbg.h"
|
#include "tiledbg.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Tiledbg::Tiledbg(SDL_Renderer *renderer, Screen *screen, Asset *asset, SDL_Rect pos)
|
Tiledbg::Tiledbg(SDL_Renderer *renderer, Screen *screen, Asset *asset, SDL_Rect pos, int mode)
|
||||||
{
|
{
|
||||||
// Copia los punteros
|
// Copia los punteros
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
this->screen = screen;
|
this->screen = screen;
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
this->pos = pos;
|
this->pos = pos;
|
||||||
|
this->mode = mode;
|
||||||
|
|
||||||
// Crea la textura para el mosaico de fondo
|
// Crea la textura para el mosaico de fondo
|
||||||
canvas = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, pos.w * 2, pos.h * 2);
|
canvas = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, pos.w * 2, pos.h * 2);
|
||||||
@@ -26,7 +27,10 @@ Tiledbg::~Tiledbg()
|
|||||||
void Tiledbg::init()
|
void Tiledbg::init()
|
||||||
{
|
{
|
||||||
counter = 0;
|
counter = 0;
|
||||||
mode = rand() % 2;
|
if (mode == TILED_MODE_RANDOM)
|
||||||
|
{
|
||||||
|
mode = rand() % 2;
|
||||||
|
}
|
||||||
tileWidth = 64;
|
tileWidth = 64;
|
||||||
tileHeight = 64;
|
tileHeight = 64;
|
||||||
|
|
||||||
@@ -90,12 +94,12 @@ void Tiledbg::render()
|
|||||||
// Actualiza la lógica de la clase
|
// Actualiza la lógica de la clase
|
||||||
void Tiledbg::update()
|
void Tiledbg::update()
|
||||||
{
|
{
|
||||||
if (mode == 0)
|
if (mode == TILED_MODE_DIAGONAL)
|
||||||
{ // El tileado de fondo se desplaza en diagonal
|
{ // El tileado de fondo se desplaza en diagonal
|
||||||
++window.x %= tileWidth;
|
++window.x %= tileWidth;
|
||||||
++window.y %= tileHeight;
|
++window.y %= tileHeight;
|
||||||
}
|
}
|
||||||
else
|
else if (mode == TILED_MODE_CIRCLE)
|
||||||
{ // El tileado de fondo se desplaza en circulo
|
{ // El tileado de fondo se desplaza en circulo
|
||||||
++counter %= 360;
|
++counter %= 360;
|
||||||
window.x = 128 + (int(sin[(counter + 270) % 360] * 128));
|
window.x = 128 + (int(sin[(counter + 270) % 360] * 128));
|
||||||
|
|||||||
@@ -9,6 +9,11 @@
|
|||||||
#ifndef TILEDBG_H
|
#ifndef TILEDBG_H
|
||||||
#define TILEDBG_H
|
#define TILEDBG_H
|
||||||
|
|
||||||
|
#define TILED_MODE_CIRCLE 0
|
||||||
|
#define TILED_MODE_DIAGONAL 1
|
||||||
|
#define TILED_MODE_RANDOM 2
|
||||||
|
#define TILED_MODE_STATIC 3
|
||||||
|
|
||||||
// Clase Tiledbg
|
// Clase Tiledbg
|
||||||
class Tiledbg
|
class Tiledbg
|
||||||
{
|
{
|
||||||
@@ -23,7 +28,7 @@ private:
|
|||||||
// Variables
|
// Variables
|
||||||
SDL_Rect pos; // Posición y tamaña del mosaico
|
SDL_Rect pos; // Posición y tamaña del mosaico
|
||||||
int counter; // Contador
|
int counter; // Contador
|
||||||
Uint8 mode; // Tipo de movimiento del mosaico
|
int mode; // Tipo de movimiento del mosaico
|
||||||
float sin[360]; // Vector con los valores del seno precalculados
|
float sin[360]; // Vector con los valores del seno precalculados
|
||||||
int tileWidth; // Ancho del tile
|
int tileWidth; // Ancho del tile
|
||||||
int tileHeight; // Alto del tile
|
int tileHeight; // Alto del tile
|
||||||
@@ -36,7 +41,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Tiledbg(SDL_Renderer *renderer, Screen *screen, Asset *asset, SDL_Rect pos);
|
Tiledbg(SDL_Renderer *renderer, Screen *screen, Asset *asset, SDL_Rect pos, int mode);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Tiledbg();
|
~Tiledbg();
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Input *input, Asset *asset,
|
|||||||
background->setGradientNumber(1);
|
background->setGradientNumber(1);
|
||||||
background->setTransition(0.8f);
|
background->setTransition(0.8f);
|
||||||
|
|
||||||
tiledbg = new Tiledbg(renderer, screen, asset, {0, 0, param->gameWidth, param->gameHeight});
|
tiledbg = new Tiledbg(renderer, screen, asset, {0, 0, param->gameWidth, param->gameHeight}, TILED_MODE_RANDOM);
|
||||||
|
|
||||||
gameLogo = new GameLogo(renderer, screen, asset, param, GAMECANVAS_CENTER_X, GAMECANVAS_FIRST_QUARTER_Y + 20);
|
gameLogo = new GameLogo(renderer, screen, asset, param, GAMECANVAS_CENTER_X, GAMECANVAS_FIRST_QUARTER_Y + 20);
|
||||||
gameLogo->enable();
|
gameLogo->enable();
|
||||||
|
|||||||
Reference in New Issue
Block a user