forked from jaildesigner-jailgames/jaildoctors_dilemma
Completadas las superficies automáticas
This commit is contained in:
@@ -7,6 +7,7 @@ roomUp=0
|
|||||||
roomDown=0
|
roomDown=0
|
||||||
roomLeft=02.room
|
roomLeft=02.room
|
||||||
roomRight=0
|
roomRight=0
|
||||||
|
autoSurface=left
|
||||||
|
|
||||||
[enemy]
|
[enemy]
|
||||||
tileset=bin.png
|
tileset=bin.png
|
||||||
|
|||||||
@@ -183,9 +183,17 @@ void Player::checkInput()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // El movimiento lo proporciona la superficie
|
{ // El movimiento lo proporciona la superficie
|
||||||
vx = 0.6f;
|
vx = 0.6f * room->getAutoSurfaceDirection();
|
||||||
|
|
||||||
|
if (vx > 0.0f)
|
||||||
|
{
|
||||||
sprite->setFlip(SDL_FLIP_NONE);
|
sprite->setFlip(SDL_FLIP_NONE);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprite->setFlip(SDL_FLIP_HORIZONTAL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (input->checkInput(INPUT_UP, REPEAT_TRUE))
|
if (input->checkInput(INPUT_UP, REPEAT_TRUE))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ Room::Room(std::string file, SDL_Renderer *renderer, Screen *screen, Asset *asse
|
|||||||
paused = false;
|
paused = false;
|
||||||
itemColor1 = stringToColor("magenta");
|
itemColor1 = stringToColor("magenta");
|
||||||
itemColor2 = stringToColor("yellow");
|
itemColor2 = stringToColor("yellow");
|
||||||
|
autoSurfaceDirection = 1;
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
|
||||||
// Copia los punteros a objetos
|
// Copia los punteros a objetos
|
||||||
@@ -339,14 +340,15 @@ bool Room::setVars(std::string var, std::string value)
|
|||||||
roomRight = value;
|
roomRight = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "tilemap")
|
else if (var == "autoSurface")
|
||||||
{
|
{
|
||||||
// Se introducen los valores separados por comas en un vector
|
if (value == "right")
|
||||||
std::stringstream ss(value);
|
|
||||||
std::string tmp;
|
|
||||||
while (getline(ss, tmp, ','))
|
|
||||||
{
|
{
|
||||||
tilemap.push_back(std::stoi(tmp));
|
autoSurfaceDirection = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
autoSurfaceDirection = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1181,7 +1183,16 @@ void Room::setAnimatedTiles()
|
|||||||
void Room::updateAnimatedTiles()
|
void Room::updateAnimatedTiles()
|
||||||
{
|
{
|
||||||
const int numFrames = 4;
|
const int numFrames = 4;
|
||||||
const int offset = ((counter / 3) % numFrames * tileSize);
|
int offset = 0;
|
||||||
|
if (autoSurfaceDirection == -1)
|
||||||
|
{
|
||||||
|
offset = ((counter / 3) % numFrames * tileSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
offset = ((numFrames - 1 - ((counter / 3) % numFrames)) * tileSize);
|
||||||
|
}
|
||||||
|
|
||||||
for (auto &a : aTile)
|
for (auto &a : aTile)
|
||||||
{
|
{
|
||||||
SDL_Rect rect = a.sprite->getSpriteClip();
|
SDL_Rect rect = a.sprite->getSpriteClip();
|
||||||
@@ -1366,3 +1377,9 @@ void Room::resume()
|
|||||||
{
|
{
|
||||||
paused = false;
|
paused = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Obten la direccion de las superficies automaticas
|
||||||
|
int Room::getAutoSurfaceDirection()
|
||||||
|
{
|
||||||
|
return autoSurfaceDirection;
|
||||||
|
}
|
||||||
@@ -17,19 +17,6 @@
|
|||||||
#ifndef ROOM_H
|
#ifndef ROOM_H
|
||||||
#define ROOM_H
|
#define ROOM_H
|
||||||
|
|
||||||
/*
|
|
||||||
Cada habitación se crea y destruye cada vez que se entra o sale de la misma
|
|
||||||
Cada habitacion tiene lo siguiente:
|
|
||||||
- NOMBRE (texto)
|
|
||||||
- COLOR DE FONDO (texto)
|
|
||||||
- COLOR DEL BORDE (texto)
|
|
||||||
- SET DE TILES (texto, hace referencia a un png de la colección)
|
|
||||||
- LIMITE SUPERIOR (ID de la habitación superior), INFERIOR, IZQUIERDO y DERECHO
|
|
||||||
- MAPA DE TILES (array con los indices de los tiles a utilizar) <-- hay que decidir si cada tile del set ya
|
|
||||||
tierne propiedades o se ponen en un mapa aparte
|
|
||||||
- LISTADO DE ENEMIGOS (tipo, posicion, dx, dy)
|
|
||||||
- LISTADO DE ITEMS (tipo, posicion)
|
|
||||||
*/
|
|
||||||
enum tile_e
|
enum tile_e
|
||||||
{
|
{
|
||||||
t_empty,
|
t_empty,
|
||||||
@@ -84,6 +71,7 @@ private:
|
|||||||
int counter; // Contador para lo que haga falta
|
int counter; // Contador para lo que haga falta
|
||||||
std::vector<aTile_t> aTile; // Vector con los indices de tiles animados
|
std::vector<aTile_t> aTile; // Vector con los indices de tiles animados
|
||||||
std::vector<h_line_t> autoSurfaces; // Lista con las superficies automaticas de la habitación
|
std::vector<h_line_t> autoSurfaces; // Lista con las superficies automaticas de la habitación
|
||||||
|
int autoSurfaceDirection; // Sentido en el que arrastran las superficies automáticas de la habitación
|
||||||
|
|
||||||
int tileSize; // Ancho del tile en pixels
|
int tileSize; // Ancho del tile en pixels
|
||||||
int mapWidth; // Ancho del mapa en tiles
|
int mapWidth; // Ancho del mapa en tiles
|
||||||
@@ -228,6 +216,9 @@ public:
|
|||||||
|
|
||||||
// Quita el modo pausa del mapa
|
// Quita el modo pausa del mapa
|
||||||
void resume();
|
void resume();
|
||||||
|
|
||||||
|
// Obten la direccion de las superficies automaticas
|
||||||
|
int getAutoSurfaceDirection();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
2
todo.txt
2
todo.txt
@@ -8,7 +8,7 @@ x (A) Decidir un diseño para qué sucede en caso de morir: Recordar el punto po
|
|||||||
x 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 {cm:2022-08-29}
|
x 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 {cm:2022-08-29}
|
||||||
x (A) Crear tiles que maten {cm:2022-08-29}
|
x (A) Crear tiles que maten {cm:2022-08-29}
|
||||||
x (A) Modificar el salto para que coincida con el del JSW, no ha de colisionar lateralmente
|
x (A) Modificar el salto para que coincida con el del JSW, no ha de colisionar lateralmente
|
||||||
(A) Crear tiles que arrastren, tipo cinta transportadora
|
x (A) Crear tiles que arrastren, tipo cinta transportadora
|
||||||
x (A) Tiles animados
|
x (A) Tiles animados
|
||||||
x (A) Tile que maten (o enemigos?)
|
x (A) Tile que maten (o enemigos?)
|
||||||
x (A) Cuando mueres, pantalla negra entre vida y vida
|
x (A) Cuando mueres, pantalla negra entre vida y vida
|
||||||
|
|||||||
Reference in New Issue
Block a user