mirror of
https://github.com/FunKey-Project/Bibi.git
synced 2025-12-12 17:58:53 +01:00
Now only 1 player game is launched with define BYPASS_MENU (default for FUNKEY), set MIN_BLOCKS_VISIBLE_IN_VIEWPORT_MODE to 2
This commit is contained in:
parent
9670219b73
commit
9383940ce4
2
Makefile
2
Makefile
@ -13,7 +13,7 @@ ifeq ($(platform), funkey)
|
||||
SDL_INCLUDES += $(shell /opt/FunKey-sdk-2.0.0/arm-funkey-linux-musleabihf/sysroot/usr/bin/libmikmod-config --cflags)
|
||||
SDL_LIBS += $(shell /opt/FunKey-sdk-2.0.0/arm-funkey-linux-musleabihf/sysroot/usr/bin/libmikmod-config --libs)
|
||||
SDL_LIBS += -Wl,--as-needed -Wl,--gc-sections -Wl,-O1,--sort-common -flto -s
|
||||
CFLAGS_EXTRA = -DFUNKEY -DHW_SCREEN_RESIZE -DSOUND_SDL_ACTIVATED
|
||||
CFLAGS_EXTRA = -DFUNKEY -DHW_SCREEN_RESIZE -DSOUND_SDL_ACTIVATED -DBYPASS_MENU
|
||||
LDFLAGS_EXTRA = -lSDL_mixer
|
||||
else
|
||||
SDL_INCLUDES = `sdl-config --cflags`
|
||||
|
||||
@ -6,12 +6,13 @@
|
||||
//#define SOUND_FMOD_ACTIVATED
|
||||
//#define SOUND_SDL_ACTIVATED
|
||||
|
||||
#define WINDOW_BPP 16
|
||||
|
||||
// Resize ?
|
||||
//#define HW_SCREEN_RESIZE
|
||||
#define HW_SCREEN_WIDTH 240
|
||||
#define HW_SCREEN_HEIGHT 240
|
||||
|
||||
#define WINDOW_BPP 16
|
||||
#define MIN_BLOCKS_VISIBLE_IN_VIEWPORT_MODE 2
|
||||
|
||||
// Size (# of pixels) of a cell of the map
|
||||
#define SIZE_BLOC 40
|
||||
|
||||
@ -1201,7 +1201,6 @@ void game_display(t_game game, SDL_Surface *screen) {
|
||||
else{
|
||||
|
||||
/****** Viewport view */
|
||||
#define MIN_BLOCKS_VISIBLE_IN_VIEWPORT_MODE 1
|
||||
/* Adapt on the right */
|
||||
if(SIZE_BLOC*player_get_x(game->player1) >= viewport_x+HW_SCREEN_WIDTH - MIN_BLOCKS_VISIBLE_IN_VIEWPORT_MODE*SIZE_BLOC){
|
||||
//printf("%d, %d\n", SIZE_BLOC*player_get_x(game->player1), viewport_x+HW_SCREEN_WIDTH);
|
||||
|
||||
199
src/main.c
199
src/main.c
@ -1025,6 +1025,201 @@ int main_menu_and_game() {
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
return main_menu_and_game();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int main_game_no_menu() {
|
||||
if (SDL_Init(SDL_INIT_EVERYTHING) == -1) {
|
||||
error("Can't init SDL: %s\n", SDL_GetError());
|
||||
}
|
||||
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
|
||||
#ifdef FUNKEY
|
||||
SDL_ShowCursor(SDL_DISABLE);
|
||||
#endif //FUNKEY
|
||||
|
||||
/** Init Video */
|
||||
#ifdef HW_SCREEN_RESIZE
|
||||
hw_screen = SDL_SetVideoMode(HW_SCREEN_WIDTH,HW_SCREEN_HEIGHT, WINDOW_BPP, SDL_HWSURFACE|SDL_DOUBLEBUF);
|
||||
if (hw_screen == NULL) {
|
||||
error("Can't set video mode: %s\n", SDL_GetError());
|
||||
}
|
||||
if(screen != NULL) SDL_FreeSurface(screen);
|
||||
screen = SDL_CreateRGBSurface(SDL_SWSURFACE, 700,500, WINDOW_BPP, 0, 0, 0, 0);
|
||||
#else //HW_SCREEN_RESIZE
|
||||
screen = SDL_SetVideoMode(700,500, WINDOW_BPP,SDL_HWSURFACE);
|
||||
if (screen == NULL) {
|
||||
error("Can't set video mode: %s\n", SDL_GetError());
|
||||
}
|
||||
#endif //HW_SCREEN_RESIZE
|
||||
SDL_WM_SetIcon(IMG_Load(IMG_PLAYER_DOWN), NULL);
|
||||
SDL_WM_SetCaption("[PG110] Projet 2010", NULL);
|
||||
|
||||
/** Load audio */
|
||||
#ifdef SOUND_FMOD_ACTIVATED
|
||||
FMUSIC_MODULE *musique_menu_p;
|
||||
FMUSIC_MODULE *musique_editeur;
|
||||
FMUSIC_MODULE *musique_2_p;
|
||||
FMUSIC_MODULE *musique_1_p;
|
||||
FMUSIC_MODULE *musique_p_e;
|
||||
|
||||
if(!FSOUND_Init(11025, 32, 0)){
|
||||
printf("Cannot init audio with FSOUND_Init\n");
|
||||
}
|
||||
else{
|
||||
audio_init_ok = true;
|
||||
musique_menu_p = FMUSIC_LoadSong("audio/mm2titl2.mid");
|
||||
musique_editeur = FMUSIC_LoadSong("audio/mm2crash.mid");
|
||||
musique_2_p = FMUSIC_LoadSong("audio/mm2wy1.mid");
|
||||
musique_1_p = FMUSIC_LoadSong("audio/mix_1_p.mid");
|
||||
musique_p_e = FMUSIC_LoadSong("audio/mm2flash.mid");
|
||||
FMUSIC_SetMasterVolume(musique_menu_p, 130);
|
||||
FMUSIC_SetMasterVolume(musique_p_e, 130);
|
||||
FMUSIC_SetMasterVolume(musique_editeur, 130);
|
||||
FMUSIC_SetMasterVolume(musique_2_p, 130);
|
||||
FMUSIC_SetMasterVolume(musique_1_p, 130);
|
||||
}
|
||||
#elif defined(SOUND_SDL_ACTIVATED)
|
||||
// Setup audio mode
|
||||
Mix_Music *musique_menu_p = NULL;
|
||||
Mix_Music *musique_editeur = NULL;
|
||||
Mix_Music *musique_2_p = NULL;
|
||||
Mix_Music *musique_1_p = NULL;
|
||||
Mix_Music *musique_p_e = NULL;
|
||||
|
||||
//if(Mix_OpenAudio(22050, AUDIO_S16SYS, 2, 640)==-1){
|
||||
//if(Mix_OpenAudio(44100, AUDIO_S16, 1, 4096) < 0){
|
||||
if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1){
|
||||
printf("Mix_OpenAudio: %s\n", Mix_GetError());
|
||||
//exit(2);
|
||||
}
|
||||
else{
|
||||
audio_init_ok = true;
|
||||
//Mix_Volume(1,MIX_MAX_VOLUME);
|
||||
const char *music_file;
|
||||
music_file = "audio/mm2titl2.ogg";
|
||||
musique_menu_p = Mix_LoadMUS(music_file);
|
||||
if(musique_menu_p == NULL){
|
||||
printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file);
|
||||
}
|
||||
music_file = "audio/mm2crash.ogg";
|
||||
musique_editeur = Mix_LoadMUS(music_file);
|
||||
if(musique_editeur == NULL){
|
||||
printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file);
|
||||
}
|
||||
music_file = "audio/mm2wy1.ogg";
|
||||
musique_2_p = Mix_LoadMUS(music_file);
|
||||
if(musique_2_p == NULL){
|
||||
printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file);
|
||||
}
|
||||
music_file = "audio/mix_1_p.ogg";
|
||||
musique_1_p = Mix_LoadMUS(music_file);
|
||||
if(musique_1_p == NULL){
|
||||
printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file);
|
||||
}
|
||||
music_file = "audio/mm2flash.ogg";
|
||||
musique_p_e = Mix_LoadMUS(music_file);
|
||||
if(musique_p_e == NULL){
|
||||
printf("Mix_LoadMUS(\"%s\"): %s\n", Mix_GetError(), music_file);
|
||||
}
|
||||
}
|
||||
#endif //SOUND_SDL_ACTIVATED
|
||||
|
||||
if(audio_init_ok){
|
||||
#ifdef SOUND_FMOD_ACTIVATED
|
||||
FMUSIC_StopSong(musique_menu_p);
|
||||
FMUSIC_PlaySong(musique_1_p);
|
||||
#elif defined(SOUND_SDL_ACTIVATED)
|
||||
Mix_HaltMusic();
|
||||
if(Mix_PlayMusic(musique_1_p, -1) < 0){
|
||||
printf("Error in File: %s, func: %s, l.%d - Cannot play music!\n",
|
||||
__FILE__, __func__, __LINE__);
|
||||
}
|
||||
#endif //SOUND_SDL_ACTIVATED
|
||||
}
|
||||
|
||||
/** 1 player Game */
|
||||
int niveau_reussi=0, ancien_niveau=1, choix_entrer_dans_niveau, kill_bomb=1;
|
||||
int game_over=NB_DECES;
|
||||
while (niveau_reussi<10){ //En effet il n'y a que 10 niveaux dans ce jeu
|
||||
|
||||
if(game_over<0){
|
||||
niveau_reussi=0; //après game over le joueur repart du niveau 1;
|
||||
game_over=NB_DECES;
|
||||
}
|
||||
choix_entrer_dans_niveau = niveau_1_joueur(screen,niveau_reussi+1);
|
||||
if (choix_entrer_dans_niveau==0){
|
||||
ancien_niveau=niveau_reussi;
|
||||
niveau_reussi=main_game(1,niveau_reussi+1,1, kill_bomb, game_over); // le jeu se lance,
|
||||
//le résultat retourné est stocké dans la variable niveau_reussi.
|
||||
|
||||
if(ancien_niveau==niveau_reussi && ancien_niveau!=0){
|
||||
game_over--; //on regarde si le joueur est mort, dans ce cas on décrémente game_over.
|
||||
}
|
||||
else if(niveau_reussi==-1){ //si l'utilisateur a fait échap ou quitter durant la partie.
|
||||
niveau_reussi=ancien_niveau;
|
||||
}
|
||||
|
||||
if (niveau_reussi>=10){ //si l'utilisateur à gagné le mode 1 joueur
|
||||
choix_entrer_dans_niveau=niveau_1_joueur(screen,0);
|
||||
niveau_reussi=0;
|
||||
game_over=NB_DECES;
|
||||
// FMUSIC_StopSong(musique_1_p);
|
||||
// play_music=1;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
else{
|
||||
if(are_you_sure(screen)==1){ //si l'utilisateur veut quitter le mode 1 joueur
|
||||
if(audio_init_ok){
|
||||
#ifdef SOUND_FMOD_ACTIVATED
|
||||
FMUSIC_StopSong(musique_1_p);
|
||||
#elif defined(SOUND_SDL_ACTIVATED)
|
||||
Mix_HaltMusic();
|
||||
#endif //SOUND_SDL_ACTIVATED
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(audio_init_ok){
|
||||
#ifdef SOUND_FMOD_ACTIVATED
|
||||
FMUSIC_FreeSong(musique_menu_p);
|
||||
FMUSIC_FreeSong(musique_2_p);
|
||||
FMUSIC_FreeSong(musique_1_p);
|
||||
FMUSIC_FreeSong(musique_p_e);
|
||||
FMUSIC_FreeSong(musique_editeur);
|
||||
#elif defined(SOUND_SDL_ACTIVATED)
|
||||
Mix_FreeMusic(musique_menu_p);
|
||||
Mix_FreeMusic(musique_2_p);
|
||||
Mix_FreeMusic(musique_1_p);
|
||||
Mix_FreeMusic(musique_p_e);
|
||||
Mix_FreeMusic(musique_editeur);
|
||||
Mix_CloseAudio();
|
||||
#endif //SOUND_SDL_ACTIVATED
|
||||
}
|
||||
|
||||
SDL_Quit();
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
#ifdef BYPASS_MENU
|
||||
return main_game_no_menu();
|
||||
|
||||
#else
|
||||
return main_menu_and_game();
|
||||
#endif
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user