Redistribución de los graficos de fondo en varios png
|
Before Width: | Height: | Size: 14 KiB |
BIN
data/gfx/game_buildings.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
data/gfx/game_clouds.png
Normal file
|
After Width: | Height: | Size: 901 B |
BIN
data/gfx/game_grass.png
Normal file
|
After Width: | Height: | Size: 468 B |
BIN
data/gfx/game_power_meter.png
Normal file
|
After Width: | Height: | Size: 270 B |
BIN
data/gfx/game_sky_colors.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 795 B After Width: | Height: | Size: 438 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -198,10 +198,17 @@ bool Director::setFileList()
|
||||
asset->add("data/gfx/balloon4.png", t_bitmap);
|
||||
asset->add("data/gfx/balloon4.ani", t_data);
|
||||
asset->add("data/gfx/bullet.png", t_bitmap);
|
||||
asset->add("data/gfx/game_bg.png", t_bitmap);
|
||||
|
||||
asset->add("data/gfx/game_buildings.png", t_bitmap);
|
||||
asset->add("data/gfx/game_clouds.png", t_bitmap);
|
||||
asset->add("data/gfx/game_grass.png", t_bitmap);
|
||||
asset->add("data/gfx/game_power_meter.png", t_bitmap);
|
||||
asset->add("data/gfx/game_sky_colors.png", t_bitmap);
|
||||
asset->add("data/gfx/game_text.png", t_bitmap);
|
||||
|
||||
asset->add("data/gfx/intro.png", t_bitmap);
|
||||
asset->add("data/gfx/logo.png", t_bitmap);
|
||||
|
||||
asset->add("data/gfx/items.png", t_bitmap);
|
||||
asset->add("data/gfx/item_points1_disk.png", t_bitmap);
|
||||
asset->add("data/gfx/item_points1_disk.ani", t_data);
|
||||
|
||||
753
source/game.cpp
143
source/game.h
@@ -36,12 +36,6 @@
|
||||
#define NUMBER_OF_ENEMY_FORMATIONS 100
|
||||
#define MAX_NUMBER_OF_ENEMIES_IN_A_FORMATION 50
|
||||
|
||||
// Cantidad de elementos del vector de SmartSprites
|
||||
#define MAX_SMART_SPRITES 10
|
||||
|
||||
// Cantidad máxima posible de balas
|
||||
#define MAX_BULLETS 50
|
||||
|
||||
// Porcentaje de aparición de los objetos
|
||||
#define ITEM_POINTS_1_DISK_ODDS 10
|
||||
#define ITEM_POINTS_2_GAVINA_ODDS 6
|
||||
@@ -51,9 +45,6 @@
|
||||
#define ITEM_POWER_BALL_ODDS 0
|
||||
#define ITEM_COFFEE_MACHINE_ODDS 4
|
||||
|
||||
// Cantidad de objetos simultaneos
|
||||
#define MAX_ITEMS 10
|
||||
|
||||
// Valores para las variables asociadas a los objetos
|
||||
#define TIME_STOPPED_COUNTER 300
|
||||
|
||||
@@ -121,85 +112,84 @@ private:
|
||||
demoKeys_t dataFile[TOTAL_DEMO_DATA]; // Datos del fichero con los movimientos para la demo
|
||||
};
|
||||
|
||||
struct debug_t
|
||||
{
|
||||
bool enabled; // Indica si se va a mostrar la información de debug
|
||||
Uint8 enemySet; // Escoge el set enemigo a generar
|
||||
Uint8 gradR, gradG, gradB; // Colores RGB para modificar el color del gradiente de fondo
|
||||
float hudW, hudH; // Multiplica el tamaño del hud de debug;
|
||||
};
|
||||
// Objetos
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
Screen *screen; // Objeto encargado de dibujar en pantalla
|
||||
Asset *asset; // Objeto que gestiona todos los ficheros de recursos
|
||||
Lang *lang; // Objeto para gestionar los textos en diferentes idiomas
|
||||
Input *input; // Manejador de entrada
|
||||
|
||||
SDL_Renderer *mRenderer; // El renderizador de la ventana
|
||||
Screen *mScreen; // Objeto encargado de dibujar en pantalla
|
||||
Asset *mAsset; // Objeto que gestiona todos los ficheros de recursos
|
||||
Lang *mLang; // Objeto para gestionar los textos en diferentes idiomas
|
||||
Input *mInput; // Manejador de entrada
|
||||
|
||||
int mNumPlayers; // Numero de jugadores
|
||||
std::vector<Player *> players; // Vector con los jugadores
|
||||
std::vector<Balloon *> balloons; // Vector con los globos
|
||||
std::vector<Bullet *> bullets; // Vector con las balas
|
||||
std::vector<Item *> items; // Vector con los items
|
||||
std::vector<SmartSprite *> smartSprites; // Vector con los smartsprites
|
||||
|
||||
LTexture *balloon1Texture; // Textura para los enemigos
|
||||
LTexture *balloon2Texture; // Textura para los enemigos
|
||||
LTexture *balloon3Texture; // Textura para los enemigos
|
||||
LTexture *balloon4Texture; // Textura para los enemigos
|
||||
LTexture *mTextureBullet; // Textura para las balas
|
||||
LTexture *mTextureGameBG; // Textura para el fondo del juego
|
||||
LTexture *mTextureGameText; // Textura para los sprites con textos
|
||||
LTexture *mTextureItems; // Textura para los items
|
||||
LTexture *balloon1Texture; // Textura para los globos
|
||||
LTexture *balloon2Texture; // Textura para los globos
|
||||
LTexture *balloon3Texture; // Textura para los globos
|
||||
LTexture *balloon4Texture; // Textura para los globos
|
||||
LTexture *bulletTexture; // Textura para las balas
|
||||
|
||||
LTexture *gameBuildingsTexture; // Textura con los edificios de fondo
|
||||
LTexture *gameCloudsTexture; // Textura con las nubes de fondo
|
||||
LTexture *gameGrassTexture; // Textura con la hierba del suelo
|
||||
LTexture *gamePowerMeterTexture; // Textura con el marcador de poder de la fase
|
||||
LTexture *gameSkyColorsTexture; // Textura con los diferentes colores de fondo del juego
|
||||
LTexture *gameTextTexture; // Textura para los sprites con textos
|
||||
|
||||
LTexture *itemTexture; // Textura para los items
|
||||
|
||||
std::vector<std::string> *balloon1Animation; // Información para la animación de los globos
|
||||
std::vector<std::string> *balloon2Animation; // Información para la animación de los globos
|
||||
std::vector<std::string> *balloon3Animation; // Información para la animación de los globos
|
||||
std::vector<std::string> *balloon4Animation; // Información para la animación de los globos
|
||||
|
||||
Text *mText; // Fuente para los textos del juego
|
||||
Text *mTextBig; // Fuente de texto grande
|
||||
Text *mTextScoreBoard; // Fuente para el marcador del juego
|
||||
Text *mTextNokia2; // Otra fuente de texto para mesajes
|
||||
Text *mTextNokiaBig2; // Y la versión en grande
|
||||
Text *text; // Fuente para los textos del juego
|
||||
Text *textBig; // Fuente de texto grande
|
||||
Text *textScoreBoard; // Fuente para el marcador del juego
|
||||
Text *textNokia2; // Otra fuente de texto para mesajes
|
||||
Text *textNokiaBig2; // Y la versión en grande
|
||||
|
||||
Menu *mMenuGameOver; // Menú de la pantalla de game over
|
||||
Menu *mMenuPause; // Menú de la pantalla de pausa
|
||||
Menu *gameOverMenu; // Menú de la pantalla de game over
|
||||
Menu *pauseMenu; // Menú de la pantalla de pausa
|
||||
|
||||
Fade *mFade; // Objeto para renderizar fades
|
||||
SDL_Event *mEventHandler; // Manejador de eventos
|
||||
Fade *fade; // Objeto para renderizar fades
|
||||
SDL_Event *eventHandler; // Manejador de eventos
|
||||
|
||||
MovingSprite *mClouds1a; // Sprite para las nubes superiores
|
||||
MovingSprite *mClouds1b; // Sprite para las nubes superiores
|
||||
MovingSprite *mClouds2a; // Sprite para las nubes inferiores
|
||||
MovingSprite *mClouds2b; // Sprite para las nubes inferiores
|
||||
SmartSprite *m1000Bitmap; // Sprite con el texto 1.000
|
||||
SmartSprite *m2500Bitmap; // Sprite con el texto 2.500
|
||||
SmartSprite *m5000Bitmap; // Sprite con el texto 5.000
|
||||
Sprite *mSpriteBackground; // Sprite con los graficos frontales del fondo
|
||||
Sprite *mSpriteGetReady; // Sprite para el texto de GetReady del principio de la partida
|
||||
Sprite *mSpriteGradient; // Sprite con los graficos del degradado de color de fondo
|
||||
Sprite *mSpriteGrass; // Sprite para la hierba
|
||||
Sprite *mSpritePowerMeter; // Sprite para el medidor de poder de la fase
|
||||
Sprite *mSpriteScoreBoard; // Sprite para el fondo del marcador
|
||||
MovingSprite *clouds1A; // Sprite para las nubes superiores
|
||||
MovingSprite *clouds1B; // Sprite para las nubes superiores
|
||||
MovingSprite *clouds2A; // Sprite para las nubes inferiores
|
||||
MovingSprite *clouds2B; // Sprite para las nubes inferiores
|
||||
SmartSprite *n1000Sprite; // Sprite con el texto 1.000
|
||||
SmartSprite *n2500Sprite; // Sprite con el texto 2.500
|
||||
SmartSprite *n5000Sprite; // Sprite con el texto 5.000
|
||||
|
||||
JA_Sound mSoundBalloon; // Sonido para la explosión del globo
|
||||
JA_Sound mSoundBullet; // Sonido para los disparos
|
||||
JA_Sound mSoundPlayerCollision; // Sonido para la colisión del jugador con un enemigo
|
||||
JA_Sound mSoundHiScore; // Sonido para cuando se alcanza la máxima puntuación
|
||||
JA_Sound mSoundItemDrop; // Sonido para cuando se genera un item
|
||||
JA_Sound mSoundItemPickup; // Sonido para cuando se recoge un item
|
||||
JA_Sound mSoundCoffeeOut; // Sonido para cuando el jugador pierde el café al recibir un impacto
|
||||
JA_Sound mSoundStageChange; // Sonido para cuando se cambia de fase
|
||||
JA_Sound mSoundBubble1; // Sonido para cuando el jugador muere
|
||||
JA_Sound mSoundBubble2; // Sonido para cuando el jugador muere
|
||||
JA_Sound mSoundBubble3; // Sonido para cuando el jugador muere
|
||||
JA_Sound mSoundBubble4; // Sonido para cuando el jugador muere
|
||||
JA_Sound mSoundClock; // Sonido para cuando se detiene el tiempo con el item reloj
|
||||
JA_Sound mSoundPowerBall; // Sonido para cuando se explota una Power Ball
|
||||
JA_Sound mSoundCollision; // Sonido para cuando la máquina de café toca el suelo
|
||||
Sprite *buildingsSprite; // Sprite con los edificios de fondo
|
||||
Sprite *skyColorsSprite; // Sprite con los graficos del degradado de color de fondo
|
||||
Sprite *grassSprite; // Sprite para la hierba
|
||||
Sprite *powerMeterSprite; // Sprite para el medidor de poder de la fase
|
||||
|
||||
JA_Music mMusicPlaying; // Musica de fondo
|
||||
JA_Sound balloonSound; // Sonido para la explosión del globo
|
||||
JA_Sound bulletSound; // Sonido para los disparos
|
||||
JA_Sound playerCollisionSound; // Sonido para la colisión del jugador con un enemigo
|
||||
JA_Sound hiScoreSound; // Sonido para cuando se alcanza la máxima puntuación
|
||||
JA_Sound itemDropSound; // Sonido para cuando se genera un item
|
||||
JA_Sound itemPickUpSound; // Sonido para cuando se recoge un item
|
||||
JA_Sound coffeeOutSound; // Sonido para cuando el jugador pierde el café al recibir un impacto
|
||||
JA_Sound stageChangeSound; // Sonido para cuando se cambia de fase
|
||||
JA_Sound bubble1Sound; // Sonido para cuando el jugador muere
|
||||
JA_Sound bubble2Sound; // Sonido para cuando el jugador muere
|
||||
JA_Sound bubble3Sound; // Sonido para cuando el jugador muere
|
||||
JA_Sound bubble4Sound; // Sonido para cuando el jugador muere
|
||||
JA_Sound clockSound; // Sonido para cuando se detiene el tiempo con el item reloj
|
||||
JA_Sound powerBallSound; // Sonido para cuando se explota una Power Ball
|
||||
JA_Sound coffeeMachineSound; // Sonido para cuando la máquina de café toca el suelo
|
||||
|
||||
JA_Music gameMusic; // Musica de fondo
|
||||
|
||||
// Variables
|
||||
int mNumPlayers; // Numero de jugadores
|
||||
Uint32 mTicks; // Contador de ticks para ajustar la velocidad del programa
|
||||
Uint8 mTicksSpeed; // Velocidad a la que se repiten los bucles del programa
|
||||
|
||||
@@ -219,7 +209,7 @@ private:
|
||||
Uint16 mTimeStoppedCounter; // Temporizador para llevar la cuenta del tiempo detenido
|
||||
Uint32 mCounter; // Contador para el juego
|
||||
Uint32 mScoreDataFile[TOTAL_SCORE_DATA]; // Datos del fichero de puntos
|
||||
SDL_Rect mGradientRect[4]; // Vector con las coordenadas de los 4 gradientes
|
||||
SDL_Rect skyColorsRect[4]; // Vector con las coordenadas de los 4 colores de cielo
|
||||
Uint16 mBalloonsPopped; // Lleva la cuenta de los globos explotados
|
||||
Uint8 mLastEnemyDeploy; // Guarda cual ha sido la última formación desplegada para no repetir;
|
||||
int mEnemyDeployCounter; // Cuando se lanza una formación, se le da un valor y no sale otra hasta que llegue a cero
|
||||
@@ -242,8 +232,7 @@ private:
|
||||
enemyPool_t mEnemyPool[10]; // Variable con los diferentes conjuntos de formaciones enemigas
|
||||
Uint8 mLastStageReached; // Contiene el numero de la última pantalla que se ha alcanzado
|
||||
|
||||
demo_t mDemo; // Variable con todas las variables relacionadas con el modo demo
|
||||
debug_t mDebug; // Variable con las opciones de debug
|
||||
demo_t mDemo; // Variable con todas las variables relacionadas con el modo demo
|
||||
|
||||
// Actualiza el juego
|
||||
void update();
|
||||
@@ -303,7 +292,10 @@ private:
|
||||
void renderScoreBoard();
|
||||
|
||||
// Actualiza las variables del jugador
|
||||
void updatePlayer();
|
||||
void updatePlayers();
|
||||
|
||||
// Dibuja a los jugadores
|
||||
void renderPlayers();
|
||||
|
||||
// Actualiza las variables de la fase
|
||||
void updateStage();
|
||||
@@ -488,9 +480,6 @@ private:
|
||||
// Bucle para la pantalla de game over
|
||||
void runGameOverScreen();
|
||||
|
||||
// Dibuja la informacion de debug en pantalla
|
||||
void renderDebugInfo();
|
||||
|
||||
// Indica si se puede crear una powerball
|
||||
bool canPowerBallBeCreated();
|
||||
|
||||
@@ -517,7 +506,7 @@ private:
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *screen, Asset *mAsset, Lang *lang, Input *input, bool demo, options_t *options);
|
||||
Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *screen, Asset *asset, Lang *lang, Input *input, bool demo, options_t *options);
|
||||
|
||||
// Destructor
|
||||
~Game();
|
||||
|
||||
2
todo.txt
@@ -1,4 +1,4 @@
|
||||
los items se quedan pegados en el techo (comprobar si sigue pasando, he cambiado la coreción al chocar arriba. Si sigue fallando se quita la comprobación superior)
|
||||
x los items se quedan pegados en el techo (comprobar si sigue pasando, he cambiado la coreción al chocar arriba. Si sigue fallando se quita la comprobación superior)
|
||||
x la maquina de cafe no toca el suelo
|
||||
x las bolas verdes nacen naranja al explotarlas
|
||||
falta el aura de superguerrero al pillar la maquina de cafe
|
||||
|
||||