forked from jaildesigner-jailgames/jaildoctors_dilemma
Rehaciendo las clases Sprite y sus hijas
This commit is contained in:
@@ -3,22 +3,22 @@
|
||||
<tileset firstgid="1" source="../../resources/tilesets/room1.tsx"/>
|
||||
<layer id="1" name="Capa de patrones 1" width="32" height="16">
|
||||
<data encoding="csv">
|
||||
121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,121,
|
||||
121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,0,0,0,0,161,162,163,121,121,121,121,121,121,121,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,0,0,121,121,181,182,183,0,0,0,0,0,0,0,0,0,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,161,163,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,161,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,181,183,121,121,121,0,0,0,0,0,121,121,121,121,121,
|
||||
121,181,183,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,209,0,0,0,0,0,0,0,
|
||||
121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,0,0,0,0,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,0,0,0,0,0,0,
|
||||
121,0,0,0,0,0,0,0,0,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,163,
|
||||
181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,181,183
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,108,108,108,108,108,108,108,108,108,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,108,108,108,0,0,0,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,108,108,108,0,0,0,0,0,108,108,108,108,108,
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,
|
||||
27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
@@ -1,13 +1,6 @@
|
||||
#include "const.h"
|
||||
#include "animatedsprite.h"
|
||||
|
||||
// Constructor
|
||||
AnimatedSprite::AnimatedSprite(LTexture *texture, SDL_Renderer *renderer)
|
||||
{
|
||||
mRenderer = renderer;
|
||||
mTexture = texture;
|
||||
}
|
||||
|
||||
// Destructor
|
||||
AnimatedSprite::~AnimatedSprite()
|
||||
{
|
||||
|
||||
@@ -27,7 +27,11 @@ private:
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
AnimatedSprite(LTexture *texture, SDL_Renderer *renderer);
|
||||
AnimatedSprite(LTexture *texture, SDL_Renderer *renderer)
|
||||
: MovingSprite(0, 0, 0, 0, 0, 0, 0, 0, texture, renderer)
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
// Destructor
|
||||
~AnimatedSprite();
|
||||
|
||||
@@ -77,13 +77,11 @@ void Enemy::checkPath()
|
||||
{
|
||||
if (sprite->getPosX() > x2 || sprite->getPosX() < x1)
|
||||
{
|
||||
// sprite->setPosX(sprite->getPosX() - sprite->getVelX());
|
||||
sprite->setVelX(sprite->getVelX() * (-1));
|
||||
}
|
||||
|
||||
if (sprite->getPosY() > y2 || sprite->getPosY() < y1)
|
||||
{
|
||||
// sprite->setPosY(sprite->getPosY() - sprite->getVelY());
|
||||
sprite->setVelY(sprite->getVelY() * (-1));
|
||||
}
|
||||
}
|
||||
|
||||
63
source/item.cpp
Normal file
63
source/item.cpp
Normal file
@@ -0,0 +1,63 @@
|
||||
#include "item.h"
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
|
||||
// Constructor
|
||||
Item::Item(SDL_Rect _rect, std::string _tileset, SDL_Renderer *_renderer, Asset *_asset)
|
||||
{
|
||||
// Obten punteros a objetos
|
||||
asset = _asset;
|
||||
renderer = _renderer;
|
||||
|
||||
// Crea objetos
|
||||
texture = new LTexture();
|
||||
sprite = new Sprite(_rect, texture, renderer);
|
||||
|
||||
// Carga la textura
|
||||
loadTextureFromFile(texture, asset->get(_tileset), renderer);
|
||||
|
||||
// Inicia variables
|
||||
sprite->setSpriteClip(0,0,8,8);
|
||||
|
||||
// Inicializa los colores
|
||||
color_t c = stringToColor("blue");
|
||||
color.push_back(c);
|
||||
|
||||
c = stringToColor("red");
|
||||
color.push_back(c);
|
||||
|
||||
c = stringToColor("purple");
|
||||
color.push_back(c);
|
||||
|
||||
c = stringToColor("green");
|
||||
color.push_back(c);
|
||||
|
||||
c = stringToColor("cyan");
|
||||
color.push_back(c);
|
||||
|
||||
c = stringToColor("yellow");
|
||||
color.push_back(c);
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Item::~Item()
|
||||
{
|
||||
texture->unload();
|
||||
delete texture;
|
||||
texture = nullptr;
|
||||
|
||||
delete sprite;
|
||||
sprite = nullptr;
|
||||
}
|
||||
|
||||
// Pinta el enemigo en pantalla
|
||||
void Item::draw()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Actualiza las variables del objeto
|
||||
void Item::update()
|
||||
{
|
||||
|
||||
}
|
||||
45
source/item.h
Normal file
45
source/item.h
Normal file
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
#include "ifdefs.h"
|
||||
#include "utils.h"
|
||||
#include "asset.h"
|
||||
#include "sprite.h"
|
||||
#include <string>
|
||||
|
||||
#ifndef ITEM_H
|
||||
#define ITEM_H
|
||||
|
||||
/*
|
||||
Un item deberia tener la siguiente informacion:
|
||||
POSICION INICIAL
|
||||
PNG ASOCIADO
|
||||
*/
|
||||
|
||||
// Clase Item
|
||||
class Item
|
||||
{
|
||||
private:
|
||||
LTexture *texture; // Textura con los graficos del objeto
|
||||
Sprite *sprite; // Sprite del objeto
|
||||
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||
std::vector<color_t> color; // Vector con los colores del objeto
|
||||
|
||||
// Comprueba si ha llegado al limite del recorrido para darse media vuelta
|
||||
void checkPath();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Item(SDL_Rect _rect, std::string _tileset, SDL_Renderer *_renderer, Asset *_asset);
|
||||
|
||||
// Destructor
|
||||
~Item();
|
||||
|
||||
// Pinta el objeto en pantalla
|
||||
void draw();
|
||||
|
||||
// Actualiza las variables del objeto
|
||||
void update();
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,16 +1,9 @@
|
||||
#include "const.h"
|
||||
#include "movingsprite.h"
|
||||
|
||||
// Constructor
|
||||
MovingSprite::MovingSprite()
|
||||
{
|
||||
clear();
|
||||
}
|
||||
|
||||
// Destructor
|
||||
MovingSprite::~MovingSprite()
|
||||
{
|
||||
clear();
|
||||
}
|
||||
|
||||
// Reinicia todas las variables
|
||||
@@ -38,50 +31,6 @@ void MovingSprite::clear()
|
||||
mFlip = SDL_FLIP_NONE; // Establece como se ha de voltear el sprite
|
||||
}
|
||||
|
||||
// Iniciador
|
||||
void MovingSprite::init(float x, float y, int w, int h, float velx, float vely, float accelx, float accely, LTexture *texture, SDL_Renderer *renderer)
|
||||
{
|
||||
// Establece el alto y el ancho del sprite
|
||||
setWidth(w);
|
||||
setHeight(h);
|
||||
|
||||
// Establece la posición X,Y del sprite
|
||||
setPosX(x);
|
||||
setPosY(y);
|
||||
|
||||
// Establece la velocidad X,Y del sprite
|
||||
setVelX(velx);
|
||||
setVelY(vely);
|
||||
|
||||
// Establece la aceleración X,Y del sprite
|
||||
setAccelX(accelx);
|
||||
setAccelY(accely);
|
||||
|
||||
// Establece el zoom W,H del sprite
|
||||
setZoomW(1);
|
||||
setZoomH(1);
|
||||
|
||||
// Establece el angulo con el que se dibujará
|
||||
setAngle(0.0);
|
||||
|
||||
// Establece los valores de rotacion
|
||||
setRotate(false);
|
||||
setRotateSpeed(0);
|
||||
setRotateAmount(0.0);
|
||||
|
||||
// Contador interno
|
||||
mCounter = 0;
|
||||
|
||||
// Establece la textura donde están los gráficos para el sprite
|
||||
setTexture(texture);
|
||||
|
||||
// Establece el renderizador
|
||||
setRenderer(renderer);
|
||||
|
||||
// Establece el rectangulo de donde coger la imagen
|
||||
setSpriteClip(0, 0, w, h);
|
||||
}
|
||||
|
||||
// Mueve el sprite
|
||||
void MovingSprite::move()
|
||||
{
|
||||
|
||||
@@ -31,14 +31,47 @@ protected:
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
MovingSprite();
|
||||
MovingSprite(float x, float y, int w, int h, float velx, float vely, float accelx, float accely, LTexture *texture, SDL_Renderer *renderer)
|
||||
: Sprite((int)x, (int)y, w, h, texture, renderer)
|
||||
{
|
||||
// Establece el alto y el ancho del sprite
|
||||
setWidth(w);
|
||||
setHeight(h);
|
||||
|
||||
// Establece la posición X,Y del sprite
|
||||
setPosX(x);
|
||||
setPosY(y);
|
||||
|
||||
// Establece la velocidad X,Y del sprite
|
||||
setVelX(velx);
|
||||
setVelY(vely);
|
||||
|
||||
// Establece la aceleración X,Y del sprite
|
||||
setAccelX(accelx);
|
||||
setAccelY(accely);
|
||||
|
||||
// Establece el zoom W,H del sprite
|
||||
setZoomW(1);
|
||||
setZoomH(1);
|
||||
|
||||
// Establece el angulo con el que se dibujará
|
||||
setAngle(0.0);
|
||||
|
||||
// Establece los valores de rotacion
|
||||
setRotate(false);
|
||||
setRotateSpeed(0);
|
||||
setRotateAmount(0.0);
|
||||
|
||||
// Contador interno
|
||||
mCounter = 0;
|
||||
|
||||
// Establece el rectangulo de donde coger la imagen
|
||||
setSpriteClip(0, 0, w, h);
|
||||
};
|
||||
|
||||
// Destructor
|
||||
~MovingSprite();
|
||||
|
||||
// Iniciador
|
||||
void init(float x, float y, int w, int h, float velx, float vely, float accelx, float accely, LTexture *texture, SDL_Renderer *renderer);
|
||||
|
||||
// Mueve el sprite
|
||||
void move();
|
||||
|
||||
|
||||
@@ -397,13 +397,13 @@ int Room::getTile(SDL_Point point)
|
||||
if (pos < 512)
|
||||
{
|
||||
// Los tiles entre el 1 y el 80 son solidos
|
||||
if ((tilemap[pos] > 0) && (tilemap[pos] < 81))
|
||||
if ((tilemap[pos] > 0) && (tilemap[pos] < 201))
|
||||
{
|
||||
return TILE_SOLID;
|
||||
}
|
||||
|
||||
// Los tiles mayores de 80 son atravesables
|
||||
if (tilemap[pos] > 80)
|
||||
if (tilemap[pos] > 200)
|
||||
{
|
||||
return TILE_TRAVESSABLE;
|
||||
}
|
||||
|
||||
@@ -1,44 +1,7 @@
|
||||
#include "sprite.h"
|
||||
|
||||
// Constructor
|
||||
Sprite::Sprite()
|
||||
{
|
||||
init(0, 0, 0, 0, nullptr, nullptr);
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Sprite::~Sprite()
|
||||
{
|
||||
mTexture = nullptr;
|
||||
mRenderer = nullptr;
|
||||
}
|
||||
|
||||
// Inicializador
|
||||
void Sprite::init(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer)
|
||||
{
|
||||
// Establece la posición X,Y del sprite
|
||||
setPosX(x);
|
||||
setPosY(y);
|
||||
|
||||
// Establece el alto y el ancho del sprite
|
||||
setWidth(w);
|
||||
setHeight(h);
|
||||
|
||||
// Establece el puntero al renderizador de la ventana
|
||||
setRenderer(renderer);
|
||||
|
||||
// Establece la textura donde están los gráficos para el sprite
|
||||
setTexture(texture);
|
||||
|
||||
// Establece el rectangulo de donde coger la imagen
|
||||
setSpriteClip(0, 0, w, h);
|
||||
|
||||
// Habilita el objeto
|
||||
setEnabled(true);
|
||||
}
|
||||
|
||||
// Inicializador
|
||||
void Sprite::init(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
|
||||
Sprite::Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
|
||||
{
|
||||
// Establece el alto y el ancho del sprite
|
||||
mWidth = rect.w;
|
||||
@@ -56,6 +19,39 @@ void Sprite::init(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
|
||||
|
||||
// Establece el rectangulo de donde coger la imagen
|
||||
setSpriteClip(rect);
|
||||
|
||||
// Inicializa variables
|
||||
mEnabled = true;
|
||||
}
|
||||
|
||||
Sprite::Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer)
|
||||
{
|
||||
// Establece el alto y el ancho del sprite
|
||||
mWidth = w;
|
||||
mHeight = h;
|
||||
|
||||
// Establece la posición X,Y del sprite
|
||||
mPosX = x;
|
||||
mPosY = y;
|
||||
|
||||
// Establece el puntero al renderizador de la ventana
|
||||
setRenderer(renderer);
|
||||
|
||||
// Establece la textura donde están los gráficos para el sprite
|
||||
setTexture(texture);
|
||||
|
||||
// Establece el rectangulo de donde coger la imagen
|
||||
setSpriteClip(x,y,w,h);
|
||||
|
||||
// Inicializa variables
|
||||
mEnabled = true;
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Sprite::~Sprite()
|
||||
{
|
||||
mTexture = nullptr;
|
||||
mRenderer = nullptr;
|
||||
}
|
||||
|
||||
// Muestra el sprite por pantalla
|
||||
|
||||
@@ -22,15 +22,12 @@ protected:
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Sprite();
|
||||
Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer);
|
||||
Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer);
|
||||
|
||||
// Destructor
|
||||
~Sprite();
|
||||
|
||||
// Inicializador
|
||||
void init(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *renderer);
|
||||
void init(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer);
|
||||
|
||||
// Muestra el sprite por pantalla
|
||||
void render();
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
// Constructor
|
||||
Text::Text(std::string file, LTexture *texture, SDL_Renderer *renderer)
|
||||
{
|
||||
mSprite = new Sprite();
|
||||
SDL_Rect rect = {0,0,0,0};
|
||||
mSprite = new Sprite(rect, texture, renderer);
|
||||
mSprite->setTexture(texture);
|
||||
mSprite->setRenderer(renderer);
|
||||
mFile = file;
|
||||
|
||||
38
todo.txt
38
todo.txt
@@ -2,6 +2,40 @@
|
||||
[x] Arreglar que no atraviese tiles atravaseables al caer muy rapido
|
||||
[x] Leer los mapas directamente del archivo tmx
|
||||
[ ] Crear la clase item
|
||||
[ ] Colisiones con los enemigos
|
||||
[ ] Decidir un diseño para qué sucede en caso de morir: Recordar el punto por donde se entró al mapa y la velocidad en el eje X/Y que llevaba el personaje, crear puntos de reaparicion en las habitaciones, etc
|
||||
[x] Colisiones con los enemigos
|
||||
[x] Decidir un diseño para qué sucede en caso de morir: Recordar el punto por donde se entró al mapa y la velocidad en el eje X/Y que llevaba el personaje, crear puntos de reaparicion en las habitaciones, etc
|
||||
En el Jet Set Willy el juego recuerda la posicion y el momento. En las Tres Luces de Glaurung solo la posición. Se va a optar por seguir el diseño del Jet Set Willy
|
||||
[ ] Crear tiles que maten
|
||||
[ ] Crear tiles que deslicen, (no tipo hielo sino cinta)
|
||||
[ ] Crear ascensores
|
||||
|
||||
|
||||
TEMAS:
|
||||
arounders
|
||||
paku simbel
|
||||
jail battle
|
||||
arounders race
|
||||
aee gba
|
||||
matatunos
|
||||
sigmasua
|
||||
calculin doom
|
||||
leaper reaper
|
||||
mini ascii
|
||||
mappy
|
||||
paco
|
||||
chirping
|
||||
abad y batman
|
||||
jail
|
||||
counter strike
|
||||
starcraft
|
||||
diablo
|
||||
jailparty
|
||||
maniac mansion
|
||||
molotov
|
||||
tutorials
|
||||
gavina
|
||||
puzzle restorer
|
||||
qvoid
|
||||
brick roll
|
||||
dante's fall
|
||||
repairing computers
|
||||
|
||||
Reference in New Issue
Block a user