Agrego la pantalla de introducción.
parent
e02282ec2c
commit
c595ff7e9a
|
@ -135,6 +135,10 @@ nobase_dist_gamedata_DATA = images/background.png \
|
||||||
images/crash_2.png \
|
images/crash_2.png \
|
||||||
images/crash_3.png \
|
images/crash_3.png \
|
||||||
images/crash_4.png \
|
images/crash_4.png \
|
||||||
|
images/gameintro.png \
|
||||||
|
images/penguin_intro_back.png \
|
||||||
|
images/penguin_intro_color.png \
|
||||||
|
images/penguin_intro_front.png \
|
||||||
klickclack.ttf
|
klickclack.ttf
|
||||||
|
|
||||||
# Instalar los archivos .desktop e iconos
|
# Instalar los archivos .desktop e iconos
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: bean-counters-classic 0.1.0\n"
|
"Project-Id-Version: bean-counters-classic 0.1.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-13 13:45-0500\n"
|
"POT-Creation-Date: 2020-01-21 08:36-0600\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -17,19 +17,51 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=CHARSET\n"
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: src/beans.c:872
|
#: src/beans.c:915
|
||||||
msgid "LIVES:"
|
msgid "LIVES:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:873
|
#: src/beans.c:916
|
||||||
msgid "TRUCK:"
|
msgid "TRUCK:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:874
|
#: src/beans.c:917
|
||||||
msgid "SCORE:"
|
msgid "SCORE:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1732
|
#: src/beans.c:919
|
||||||
|
msgid "TRY AGAIN..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/beans.c:921
|
||||||
|
msgid ""
|
||||||
|
"TRUCK\n"
|
||||||
|
"UNLOADED!!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/beans.c:922
|
||||||
|
msgid "NEXT TRUCK!!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/beans.c:924
|
||||||
|
msgid "Game Over!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/beans.c:926
|
||||||
|
msgid ""
|
||||||
|
"BEAN\n"
|
||||||
|
"COUNTERS!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/beans.c:927
|
||||||
|
msgid "INSTRUCTIONS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/beans.c:928
|
||||||
|
msgid "PLAY GAME!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/beans.c:2024
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error: Can't initialize the video subsystem\n"
|
"Error: Can't initialize the video subsystem\n"
|
||||||
|
@ -37,11 +69,11 @@ msgid ""
|
||||||
"%s\n"
|
"%s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1743
|
#: src/beans.c:2035
|
||||||
msgid "Bean Counters Classic"
|
msgid "Bean Counters Classic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1750
|
#: src/beans.c:2042
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error: Can't setup 760x480 video mode.\n"
|
"Error: Can't setup 760x480 video mode.\n"
|
||||||
|
@ -49,19 +81,19 @@ msgid ""
|
||||||
"%s\n"
|
"%s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1759
|
#: src/beans.c:2051
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Warning: Can't initialize the audio subsystem\n"
|
"Warning: Can't initialize the audio subsystem\n"
|
||||||
"Continuing...\n"
|
"Continuing...\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1768
|
#: src/beans.c:2060
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Warning: Can't initialize the SDL Mixer library\n"
|
msgid "Warning: Can't initialize the SDL Mixer library\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1779 src/beans.c:1906
|
#: src/beans.c:2071 src/beans.c:2218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Failed to load data file:\n"
|
"Failed to load data file:\n"
|
||||||
|
@ -70,21 +102,21 @@ msgid ""
|
||||||
"%s\n"
|
"%s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1806
|
#: src/beans.c:2098
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Failed to load data file:\n"
|
"Failed to load data file:\n"
|
||||||
"%s\n"
|
"%s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1862
|
#: src/beans.c:2154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error: Can't initialize the SDL TTF library\n"
|
"Error: Can't initialize the SDL TTF library\n"
|
||||||
"%s\n"
|
"%s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/beans.c:1873
|
#: src/beans.c:2169
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Failed to load font file 'Klick Clack\n"
|
"Failed to load font file 'Klick Clack\n"
|
||||||
|
|
|
@ -10,6 +10,7 @@ bean_counters_classic_SOURCES = beans.c \
|
||||||
sdl2_rect.c sdl2_rect.h \
|
sdl2_rect.c sdl2_rect.h \
|
||||||
draw-text.c draw-text.h \
|
draw-text.c draw-text.h \
|
||||||
zoom.c zoom.h \
|
zoom.c zoom.h \
|
||||||
|
cp-button.c cp-button.h \
|
||||||
gettext.h
|
gettext.h
|
||||||
|
|
||||||
if MACOSX
|
if MACOSX
|
||||||
|
|
231
src/beans.c
231
src/beans.c
|
@ -45,6 +45,7 @@
|
||||||
#include "collider.h"
|
#include "collider.h"
|
||||||
#include "draw-text.h"
|
#include "draw-text.h"
|
||||||
#include "zoom.h"
|
#include "zoom.h"
|
||||||
|
#include "cp-button.h"
|
||||||
|
|
||||||
#define FPS (1000/24)
|
#define FPS (1000/24)
|
||||||
#define RANDOM(x) ((int) (x ## .0 * rand () / (RAND_MAX + 1.0)))
|
#define RANDOM(x) ((int) (x ## .0 * rand () / (RAND_MAX + 1.0)))
|
||||||
|
@ -92,6 +93,12 @@ typedef struct _BeanBag {
|
||||||
|
|
||||||
/* Enumerar las imágenes */
|
/* Enumerar las imágenes */
|
||||||
enum {
|
enum {
|
||||||
|
IMG_GAMEINTRO,
|
||||||
|
|
||||||
|
IMG_PENGUIN_INTRO_BACK,
|
||||||
|
IMG_PENGUIN_INTRO_COLOR,
|
||||||
|
IMG_PENGUIN_INTRO_FRONT,
|
||||||
|
|
||||||
IMG_BACKGROUND,
|
IMG_BACKGROUND,
|
||||||
IMG_PLATAFORM,
|
IMG_PLATAFORM,
|
||||||
|
|
||||||
|
@ -211,6 +218,12 @@ enum {
|
||||||
|
|
||||||
/* Los nombres de archivos */
|
/* Los nombres de archivos */
|
||||||
const char *images_names[NUM_IMAGES] = {
|
const char *images_names[NUM_IMAGES] = {
|
||||||
|
"images/gameintro.png",
|
||||||
|
|
||||||
|
"images/penguin_intro_back.png",
|
||||||
|
"images/penguin_intro_color.png",
|
||||||
|
"images/penguin_intro_front.png",
|
||||||
|
|
||||||
"images/background.png",
|
"images/background.png",
|
||||||
"images/plataform.png",
|
"images/plataform.png",
|
||||||
|
|
||||||
|
@ -331,6 +344,23 @@ const char *sound_names[NUM_SOUNDS] = {
|
||||||
"sounds/none.wav",
|
"sounds/none.wav",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Para el motor de botones */
|
||||||
|
enum {
|
||||||
|
BUTTON_NONE,
|
||||||
|
|
||||||
|
BUTTON_UI_INSTRUCTIONS,
|
||||||
|
BUTTON_UI_PLAY_GAME,
|
||||||
|
BUTTON_CLOSE,
|
||||||
|
|
||||||
|
NUM_BUTTONS
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
BLANK_UP,
|
||||||
|
BLANK_OVER,
|
||||||
|
BLANK_DOWN
|
||||||
|
};
|
||||||
|
|
||||||
/* Codigos de salida */
|
/* Codigos de salida */
|
||||||
enum {
|
enum {
|
||||||
GAME_NONE = 0, /* No usado */
|
GAME_NONE = 0, /* No usado */
|
||||||
|
@ -486,6 +516,10 @@ enum {
|
||||||
|
|
||||||
TEXT_GAME_OVER,
|
TEXT_GAME_OVER,
|
||||||
|
|
||||||
|
TEXT_TITLE_BEAN_COUNTERS,
|
||||||
|
TEXT_INSTRUCTIONS,
|
||||||
|
TEXT_PLAY_GAME,
|
||||||
|
|
||||||
NUM_TEXTS
|
NUM_TEXTS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -885,9 +919,13 @@ const char *text_strings[NUM_TEXTS] = {
|
||||||
gettext_noop ("TRY AGAIN..."),
|
gettext_noop ("TRY AGAIN..."),
|
||||||
|
|
||||||
gettext_noop ("TRUCK\nUNLOADED!!"),
|
gettext_noop ("TRUCK\nUNLOADED!!"),
|
||||||
gettext_noop ("NEXT TRUCK!!"),
|
gettext_noop ("NEXT TRUCK!!"),
|
||||||
|
|
||||||
gettext_noop ("Game Over!")
|
gettext_noop ("Game Over!"),
|
||||||
|
|
||||||
|
gettext_noop ("BEAN\nCOUNTERS!"),
|
||||||
|
gettext_noop ("INSTRUCTIONS"),
|
||||||
|
gettext_noop ("PLAY GAME!"),
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Prototipos de función */
|
/* Prototipos de función */
|
||||||
|
@ -899,6 +937,7 @@ SDL_Surface * set_video_mode (unsigned flags);
|
||||||
void setup_and_color_penguin (void);
|
void setup_and_color_penguin (void);
|
||||||
void add_bag (int tipo);
|
void add_bag (int tipo);
|
||||||
void delete_bag (BeanBag *p);
|
void delete_bag (BeanBag *p);
|
||||||
|
int map_button_in_intro (int x, int y);
|
||||||
|
|
||||||
/* Variables globales */
|
/* Variables globales */
|
||||||
SDL_Surface * screen;
|
SDL_Surface * screen;
|
||||||
|
@ -932,8 +971,17 @@ int main (int argc, char *argv[]) {
|
||||||
|
|
||||||
setup ();
|
setup ();
|
||||||
bind_textdomain_codeset (PACKAGE, "UTF-8");
|
bind_textdomain_codeset (PACKAGE, "UTF-8");
|
||||||
|
|
||||||
|
/* Registrar botones */
|
||||||
|
cp_registrar_botones (NUM_BUTTONS);
|
||||||
|
cp_registrar_boton (BUTTON_UI_INSTRUCTIONS, BLANK_UP);
|
||||||
|
cp_registrar_boton (BUTTON_UI_PLAY_GAME, BLANK_UP);
|
||||||
|
//cp_registrar_boton (BUTTON_CLOSE, IMG_BUTTON_1_UP);
|
||||||
|
|
||||||
|
cp_button_start ();
|
||||||
|
|
||||||
do {
|
do {
|
||||||
//if (game_intro () == GAME_QUIT) break;
|
if (game_intro () == GAME_QUIT) break;
|
||||||
if (game_loop () == GAME_QUIT) break;
|
if (game_loop () == GAME_QUIT) break;
|
||||||
//if (game_finish () == GAME_QUIT) break;
|
//if (game_finish () == GAME_QUIT) break;
|
||||||
} while (1 == 0);
|
} while (1 == 0);
|
||||||
|
@ -942,20 +990,101 @@ int main (int argc, char *argv[]) {
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
int game_intro (void) {
|
int game_intro (void) {
|
||||||
int done = 0;
|
int done = 0;
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
SDLKey key;
|
SDLKey key;
|
||||||
SDL_Rect rect;
|
SDL_Rect rect;
|
||||||
|
int map;
|
||||||
Uint32 last_time, now_time;
|
Uint32 last_time, now_time;
|
||||||
|
SDL_Surface *color_surface;
|
||||||
|
SDL_Rect update_rects[6];
|
||||||
|
int num_rects;
|
||||||
|
|
||||||
|
Uint32 color, blanco2;
|
||||||
|
SDL_Surface *trans;
|
||||||
|
|
||||||
|
color = SDL_MapRGB (screen->format, 255, 255, 255);
|
||||||
|
trans = SDL_CreateRGBSurface (SDL_SWSURFACE | SDL_SRCALPHA, 246, 24, 32, RMASK, GMASK, BMASK, AMASK);
|
||||||
|
blanco2 = SDL_MapRGBA (trans->format, 255, 255, 255, 128);
|
||||||
|
SDL_FillRect (trans, NULL, blanco2); /* Blanco */
|
||||||
|
|
||||||
|
/* Precolorear el cuerpo del pingüino */
|
||||||
|
color_surface = SDL_CreateRGBSurface (SDL_SWSURFACE, images[IMG_PENGUIN_INTRO_COLOR]->w, images[IMG_PENGUIN_INTRO_COLOR]->h, 32, RMASK, GMASK, BMASK, AMASK);
|
||||||
|
SDL_FillRect (color_surface, NULL, SDL_MapRGB (color_surface->format, penguin_colors[color_penguin].r, penguin_colors[color_penguin].g, penguin_colors[color_penguin].b));
|
||||||
|
|
||||||
|
SDL_BlitSurface (color_surface, NULL, images[IMG_PENGUIN_INTRO_COLOR], NULL);
|
||||||
|
|
||||||
|
SDL_FreeSurface (color_surface);
|
||||||
|
|
||||||
/* Predibujar todo */
|
/* Predibujar todo */
|
||||||
SDL_FillRect (screen, NULL, 0);
|
SDL_BlitSurface (images[IMG_BACKGROUND], NULL, screen, NULL);
|
||||||
|
|
||||||
|
/* Dibujar la plataforma */
|
||||||
|
rect.x = 0;
|
||||||
|
rect.y = 355;
|
||||||
|
rect.w = images[IMG_PLATAFORM]->w;
|
||||||
|
rect.h = images[IMG_PLATAFORM]->h;
|
||||||
|
|
||||||
|
SDL_BlitSurface (images[IMG_PLATAFORM], NULL, screen, &rect);
|
||||||
|
|
||||||
|
/* Dibujar el game intro */
|
||||||
|
rect.x = 113;
|
||||||
|
rect.y = 35;
|
||||||
|
rect.w = images[IMG_GAMEINTRO]->w;
|
||||||
|
rect.h = images[IMG_GAMEINTRO]->h;
|
||||||
|
|
||||||
|
SDL_BlitSurface (images[IMG_GAMEINTRO], NULL, screen, &rect);
|
||||||
|
|
||||||
|
/* Dibujar el pingüino */
|
||||||
|
rect.x = 127;
|
||||||
|
rect.y = 68;
|
||||||
|
rect.w = images[IMG_PENGUIN_INTRO_BACK]->w;
|
||||||
|
rect.h = images[IMG_PENGUIN_INTRO_BACK]->h;
|
||||||
|
|
||||||
|
SDL_BlitSurface (images[IMG_PENGUIN_INTRO_BACK], NULL, screen, &rect);
|
||||||
|
|
||||||
|
rect.x = 134;
|
||||||
|
rect.y = 162;
|
||||||
|
rect.w = images[IMG_PENGUIN_INTRO_COLOR]->w;
|
||||||
|
rect.h = images[IMG_PENGUIN_INTRO_COLOR]->h;
|
||||||
|
|
||||||
|
SDL_BlitSurface (images[IMG_PENGUIN_INTRO_COLOR], NULL, screen, &rect);
|
||||||
|
|
||||||
|
rect.x = 157;
|
||||||
|
rect.y = 239;
|
||||||
|
rect.w = images[IMG_PENGUIN_INTRO_FRONT]->w;
|
||||||
|
rect.h = images[IMG_PENGUIN_INTRO_FRONT]->h;
|
||||||
|
|
||||||
|
SDL_BlitSurface (images[IMG_PENGUIN_INTRO_FRONT], NULL, screen, &rect);
|
||||||
|
|
||||||
|
/* Dibujar el título */
|
||||||
|
rect.w = texts[TEXT_TITLE_BEAN_COUNTERS]->w;
|
||||||
|
rect.h = texts[TEXT_TITLE_BEAN_COUNTERS]->h;
|
||||||
|
rect.x = 504 - (rect.w / 2);
|
||||||
|
rect.y = 92;
|
||||||
|
|
||||||
|
SDL_BlitSurface (texts[TEXT_TITLE_BEAN_COUNTERS], NULL, screen, &rect);
|
||||||
|
|
||||||
|
rect.w = texts[TEXT_INSTRUCTIONS]->w;
|
||||||
|
rect.h = texts[TEXT_INSTRUCTIONS]->h;
|
||||||
|
rect.x = 504 - (rect.w / 2);
|
||||||
|
rect.y = 327;
|
||||||
|
|
||||||
|
SDL_BlitSurface (texts[TEXT_INSTRUCTIONS], NULL, screen, &rect);
|
||||||
|
|
||||||
|
rect.w = texts[TEXT_PLAY_GAME]->w;
|
||||||
|
rect.h = texts[TEXT_PLAY_GAME]->h;
|
||||||
|
rect.x = 504 - (rect.w / 2);
|
||||||
|
rect.y = 383;
|
||||||
|
|
||||||
|
SDL_BlitSurface (texts[TEXT_PLAY_GAME], NULL, screen, &rect);
|
||||||
|
|
||||||
SDL_Flip (screen);
|
SDL_Flip (screen);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
last_time = SDL_GetTicks ();
|
last_time = SDL_GetTicks ();
|
||||||
|
num_rects = 0;
|
||||||
|
|
||||||
while (SDL_PollEvent(&event) > 0) {
|
while (SDL_PollEvent(&event) > 0) {
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
|
@ -964,10 +1093,25 @@ int game_intro (void) {
|
||||||
done = GAME_QUIT;
|
done = GAME_QUIT;
|
||||||
break;
|
break;
|
||||||
case SDL_MOUSEMOTION:
|
case SDL_MOUSEMOTION:
|
||||||
|
map = map_button_in_intro (event.motion.x, event.motion.y);
|
||||||
|
cp_button_motion (map);
|
||||||
break;
|
break;
|
||||||
case SDL_MOUSEBUTTONDOWN:
|
case SDL_MOUSEBUTTONDOWN:
|
||||||
|
map = map_button_in_intro (event.button.x, event.button.y);
|
||||||
|
cp_button_down (map);
|
||||||
break;
|
break;
|
||||||
case SDL_MOUSEBUTTONUP:
|
case SDL_MOUSEBUTTONUP:
|
||||||
|
map = map_button_in_intro (event.button.x, event.button.y);
|
||||||
|
map = cp_button_up (map);
|
||||||
|
|
||||||
|
switch (map) {
|
||||||
|
case BUTTON_UI_INSTRUCTIONS:
|
||||||
|
done = GAME_CONTINUE;
|
||||||
|
break;
|
||||||
|
case BUTTON_UI_PLAY_GAME:
|
||||||
|
done = GAME_CONTINUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SDL_KEYDOWN:
|
case SDL_KEYDOWN:
|
||||||
/* Tengo una tecla presionada */
|
/* Tengo una tecla presionada */
|
||||||
|
@ -983,7 +1127,59 @@ int game_intro (void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_Flip (screen);
|
if (cp_button_refresh[BUTTON_UI_INSTRUCTIONS]) {
|
||||||
|
rect.x = 381; rect.y = 327;
|
||||||
|
rect.w = 246; rect.h = 24;
|
||||||
|
SDL_FillRect (screen, &rect, color);
|
||||||
|
update_rects[num_rects++] = rect;
|
||||||
|
|
||||||
|
rect.w = texts[TEXT_INSTRUCTIONS]->w;
|
||||||
|
rect.h = texts[TEXT_INSTRUCTIONS]->h;
|
||||||
|
rect.x = 504 - (rect.w / 2);
|
||||||
|
rect.y = 327;
|
||||||
|
|
||||||
|
SDL_BlitSurface (texts[TEXT_INSTRUCTIONS], NULL, screen, &rect);
|
||||||
|
|
||||||
|
if (cp_button_frames[BUTTON_UI_INSTRUCTIONS] != BLANK_UP) {
|
||||||
|
rect.x = 381;
|
||||||
|
rect.y = 327;
|
||||||
|
rect.w = 246;
|
||||||
|
rect.h = 24;
|
||||||
|
|
||||||
|
SDL_BlitSurface (trans, NULL, screen, &rect);
|
||||||
|
}
|
||||||
|
|
||||||
|
cp_button_refresh[BUTTON_UI_INSTRUCTIONS] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cp_button_refresh[BUTTON_UI_PLAY_GAME]) {
|
||||||
|
rect.x = 381; rect.y = 383;
|
||||||
|
rect.w = 246; rect.h = 24;
|
||||||
|
SDL_FillRect (screen, &rect, color);
|
||||||
|
update_rects[num_rects++] = rect;
|
||||||
|
|
||||||
|
rect.w = texts[TEXT_PLAY_GAME]->w;
|
||||||
|
rect.h = texts[TEXT_PLAY_GAME]->h;
|
||||||
|
rect.x = 504 - (rect.w / 2);
|
||||||
|
rect.y = 383;
|
||||||
|
|
||||||
|
SDL_BlitSurface (texts[TEXT_PLAY_GAME], NULL, screen, &rect);
|
||||||
|
|
||||||
|
if (cp_button_frames[BUTTON_UI_PLAY_GAME] != BLANK_UP) {
|
||||||
|
rect.x = 381;
|
||||||
|
rect.y = 383;
|
||||||
|
rect.w = 246;
|
||||||
|
rect.h = 24;
|
||||||
|
|
||||||
|
SDL_BlitSurface (trans, NULL, screen, &rect);
|
||||||
|
}
|
||||||
|
|
||||||
|
cp_button_refresh[BUTTON_UI_PLAY_GAME] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_UpdateRects (screen, num_rects, update_rects);
|
||||||
|
|
||||||
|
//SDL_Flip (screen);
|
||||||
|
|
||||||
now_time = SDL_GetTicks ();
|
now_time = SDL_GetTicks ();
|
||||||
if (now_time < last_time + FPS) SDL_Delay(last_time + FPS - now_time);
|
if (now_time < last_time + FPS) SDL_Delay(last_time + FPS - now_time);
|
||||||
|
@ -993,6 +1189,7 @@ int game_intro (void) {
|
||||||
return done;
|
return done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
int game_finish (void) {
|
int game_finish (void) {
|
||||||
int done = 0;
|
int done = 0;
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
|
@ -1792,7 +1989,7 @@ void setup (void) {
|
||||||
char buffer_file[8192];
|
char buffer_file[8192];
|
||||||
char *systemdata_path = get_systemdata_path ();
|
char *systemdata_path = get_systemdata_path ();
|
||||||
Collider *c;
|
Collider *c;
|
||||||
TTF_Font *ttf48_klickclack, *ttf52_klickclack;
|
TTF_Font *ttf48_klickclack, *ttf52_klickclack, *ttf40_klickclack;
|
||||||
|
|
||||||
/* Inicializar el Video SDL */
|
/* Inicializar el Video SDL */
|
||||||
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
|
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
|
||||||
|
@ -1937,9 +2134,10 @@ void setup (void) {
|
||||||
ttf24_klickclack = TTF_OpenFont (buffer_file, 24);
|
ttf24_klickclack = TTF_OpenFont (buffer_file, 24);
|
||||||
ttf196_klickclack = TTF_OpenFont (buffer_file, 196);
|
ttf196_klickclack = TTF_OpenFont (buffer_file, 196);
|
||||||
ttf48_klickclack = TTF_OpenFont (buffer_file, 48);
|
ttf48_klickclack = TTF_OpenFont (buffer_file, 48);
|
||||||
|
ttf40_klickclack = TTF_OpenFont (buffer_file, 40);
|
||||||
ttf52_klickclack = TTF_OpenFont (buffer_file, 52);
|
ttf52_klickclack = TTF_OpenFont (buffer_file, 52);
|
||||||
|
|
||||||
if (!ttf24_klickclack || !ttf196_klickclack || !ttf48_klickclack || !ttf52_klickclack) {
|
if (!ttf24_klickclack || !ttf196_klickclack || !ttf48_klickclack || !ttf52_klickclack || !ttf40_klickclack) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("Failed to load font file 'Klick Clack\n"
|
_("Failed to load font file 'Klick Clack\n"
|
||||||
"The error returned by SDL is:\n"
|
"The error returned by SDL is:\n"
|
||||||
|
@ -1951,9 +2149,12 @@ void setup (void) {
|
||||||
// TODO: Favor de manejar correctamente el bind_textdomain_codeset
|
// TODO: Favor de manejar correctamente el bind_textdomain_codeset
|
||||||
bind_textdomain_codeset (PACKAGE, "UTF-8");
|
bind_textdomain_codeset (PACKAGE, "UTF-8");
|
||||||
|
|
||||||
SDL_Color negro, blanco;
|
SDL_Color negro, blanco, azul1;
|
||||||
blanco.r = blanco.g = blanco.b = 255;
|
blanco.r = blanco.g = blanco.b = 255;
|
||||||
negro.r = negro.g = negro.b = 0;
|
negro.r = negro.g = negro.b = 0;
|
||||||
|
azul1.r = 0x01;
|
||||||
|
azul1.g = 0x34;
|
||||||
|
azul1.b = 0x9a;
|
||||||
|
|
||||||
for (g = TEXT_LIVES; g <= TEXT_SCORE; g++) {
|
for (g = TEXT_LIVES; g <= TEXT_SCORE; g++) {
|
||||||
texts[g] = draw_text_with_shadow (ttf24_klickclack, 2, _(text_strings[g]), blanco, negro);
|
texts[g] = draw_text_with_shadow (ttf24_klickclack, 2, _(text_strings[g]), blanco, negro);
|
||||||
|
@ -1964,8 +2165,13 @@ void setup (void) {
|
||||||
texts[TEXT_NEXT_TRUCK] = draw_text_with_shadow (ttf48_klickclack, 2, _(text_strings[TEXT_NEXT_TRUCK]), blanco, negro);
|
texts[TEXT_NEXT_TRUCK] = draw_text_with_shadow (ttf48_klickclack, 2, _(text_strings[TEXT_NEXT_TRUCK]), blanco, negro);
|
||||||
texts[TEXT_GAME_OVER] = draw_text_with_shadow (ttf52_klickclack, 3, _(text_strings[TEXT_GAME_OVER]), blanco, negro);
|
texts[TEXT_GAME_OVER] = draw_text_with_shadow (ttf52_klickclack, 3, _(text_strings[TEXT_GAME_OVER]), blanco, negro);
|
||||||
|
|
||||||
|
texts[TEXT_TITLE_BEAN_COUNTERS] = draw_text (ttf40_klickclack, _(text_strings[TEXT_TITLE_BEAN_COUNTERS]), &azul1);
|
||||||
|
texts[TEXT_INSTRUCTIONS] = draw_text (ttf24_klickclack, _(text_strings[TEXT_INSTRUCTIONS]), &azul1);
|
||||||
|
texts[TEXT_PLAY_GAME] = draw_text (ttf24_klickclack, _(text_strings[TEXT_PLAY_GAME]), &azul1);
|
||||||
|
|
||||||
TTF_CloseFont (ttf48_klickclack);
|
TTF_CloseFont (ttf48_klickclack);
|
||||||
TTF_CloseFont (ttf52_klickclack);
|
TTF_CloseFont (ttf52_klickclack);
|
||||||
|
TTF_CloseFont (ttf40_klickclack);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup_and_color_penguin (void) {
|
void setup_and_color_penguin (void) {
|
||||||
|
@ -2180,3 +2386,10 @@ void delete_bag (BeanBag *p) {
|
||||||
|
|
||||||
free (p);
|
free (p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int map_button_in_intro (int x, int y) {
|
||||||
|
if (x >= 381 && x < 627 && y >= 324 && y < 348) return BUTTON_UI_INSTRUCTIONS;
|
||||||
|
if (x >= 381 && x < 627 && y >= 380 && y < 404) return BUTTON_UI_PLAY_GAME;
|
||||||
|
return BUTTON_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
|
@ -0,0 +1,104 @@
|
||||||
|
/*
|
||||||
|
* cp-button.c
|
||||||
|
* This file is part of Thin Ice
|
||||||
|
*
|
||||||
|
* Copyright (C) 2013 - Felix Arreola Rodriguez
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int *cp_button_frames;
|
||||||
|
int *cp_button_refresh;
|
||||||
|
int cp_old_map, cp_last_button;
|
||||||
|
|
||||||
|
void cp_registrar_botones (int n) {
|
||||||
|
cp_button_frames = malloc (sizeof (int) * n);
|
||||||
|
cp_button_refresh = malloc (sizeof (int) * n);
|
||||||
|
memset (cp_button_refresh, 0, n * sizeof (int));
|
||||||
|
}
|
||||||
|
|
||||||
|
void cp_registrar_boton (int n, int frame) {
|
||||||
|
cp_button_frames[n] = frame;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cp_button_start (void) {
|
||||||
|
cp_old_map = cp_last_button = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cp_button_motion (int map) {
|
||||||
|
/* Motor de botones */
|
||||||
|
if (cp_old_map == 0 && map != 0) {
|
||||||
|
if (cp_last_button == 0) {
|
||||||
|
cp_button_frames [map]++;
|
||||||
|
} else if (cp_last_button == map) {
|
||||||
|
cp_button_frames [map]++;
|
||||||
|
}
|
||||||
|
cp_button_refresh [map] = 1;
|
||||||
|
} else if (cp_old_map != 0 && map == 0) {
|
||||||
|
if (cp_last_button == 0) {
|
||||||
|
cp_button_frames [cp_old_map]--;
|
||||||
|
cp_button_refresh [cp_old_map] = 1;
|
||||||
|
} else if (cp_last_button == cp_old_map) {
|
||||||
|
cp_button_frames [cp_last_button]--;
|
||||||
|
cp_button_refresh [cp_last_button] = 1;
|
||||||
|
}
|
||||||
|
} else if (cp_old_map != map) {
|
||||||
|
if (cp_last_button == 0) {
|
||||||
|
cp_button_frames [map]++;
|
||||||
|
cp_button_refresh [map] = 1;
|
||||||
|
if (cp_old_map != 0) {
|
||||||
|
cp_button_frames [cp_old_map]--;
|
||||||
|
cp_button_refresh [cp_old_map] = 1;
|
||||||
|
}
|
||||||
|
} else if (cp_last_button == cp_old_map) {
|
||||||
|
cp_button_frames [cp_old_map]--;
|
||||||
|
cp_button_refresh [cp_old_map] = 1;
|
||||||
|
} else if (cp_last_button == map) {
|
||||||
|
cp_button_frames [map]++;
|
||||||
|
cp_button_refresh [map] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cp_old_map = map;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cp_button_down (int map) {
|
||||||
|
cp_last_button = map;
|
||||||
|
|
||||||
|
if (cp_last_button != 0) {
|
||||||
|
cp_button_frames [cp_last_button]++;
|
||||||
|
cp_button_refresh [cp_last_button] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int cp_button_up (int map) {
|
||||||
|
if (cp_last_button != 0) {
|
||||||
|
cp_button_frames [cp_last_button]--;
|
||||||
|
cp_button_refresh [cp_last_button] = 1;
|
||||||
|
if (map == cp_last_button) {
|
||||||
|
/* Switch del boton */
|
||||||
|
cp_last_button = 0;
|
||||||
|
return map;
|
||||||
|
} else if (map != 0) {
|
||||||
|
cp_button_frames [map]++;
|
||||||
|
cp_button_refresh [map] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
cp_last_button = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#ifndef __CP_BUTTON_H__
|
||||||
|
#define __CP_BUTTON_H__
|
||||||
|
|
||||||
|
extern int *cp_button_frames;
|
||||||
|
extern int *cp_button_refresh;
|
||||||
|
|
||||||
|
void cp_registrar_botones (int n);
|
||||||
|
void cp_registrar_boton (int n, int frame);
|
||||||
|
void cp_button_start (void);
|
||||||
|
void cp_button_motion (int map);
|
||||||
|
void cp_button_down (int map);
|
||||||
|
int cp_button_up (int map);
|
||||||
|
|
||||||
|
#endif /* __CP_BUTTON_H__ */
|
||||||
|
|
Loading…
Reference in New Issue