added epic space music
This commit is contained in:
parent
f0471ffc32
commit
5ccf0ed4fd
2
Makefile
2
Makefile
@ -49,7 +49,7 @@ else
|
|||||||
LDFLAGS += -lGL
|
LDFLAGS += -lGL
|
||||||
endif
|
endif
|
||||||
CPPFLAGS += $(shell sdl2-config --cflags)
|
CPPFLAGS += $(shell sdl2-config --cflags)
|
||||||
LDFLAGS += -lGL4Dummies $(shell sdl2-config --libs)
|
LDFLAGS += -lGL4Dummies $(shell sdl2-config --libs) -lSDL2_mixer
|
||||||
all: $(PROGNAME)
|
all: $(PROGNAME)
|
||||||
$(PROGNAME): $(OBJ)
|
$(PROGNAME): $(OBJ)
|
||||||
$(CC) $(OBJ) $(LDFLAGS) -o $(PROGNAME)
|
$(CC) $(OBJ) $(LDFLAGS) -o $(PROGNAME)
|
||||||
|
30
window.c
30
window.c
@ -18,6 +18,7 @@
|
|||||||
* fenêtres système ouvrant un contexte favorable à GL4dummies. Cette
|
* fenêtres système ouvrant un contexte favorable à GL4dummies. Cette
|
||||||
* partie est dépendante de la bibliothèque SDL2 */
|
* partie est dépendante de la bibliothèque SDL2 */
|
||||||
#include <GL4D/gl4duw_SDL2.h>
|
#include <GL4D/gl4duw_SDL2.h>
|
||||||
|
#include <SDL_mixer.h>
|
||||||
|
|
||||||
/* protos de fonctions locales (static) */
|
/* protos de fonctions locales (static) */
|
||||||
static void init(void);
|
static void init(void);
|
||||||
@ -77,8 +78,14 @@ static int _p = -1; // the object (sun, planets, pluto) number to move.
|
|||||||
static float _a = 0.0f; // rotation angle.
|
static float _a = 0.0f; // rotation angle.
|
||||||
static int _overview = 0; // boolean to toggle overview (view from the top).
|
static int _overview = 0; // boolean to toggle overview (view from the top).
|
||||||
|
|
||||||
|
static Mix_Chunk * bsound = NULL;
|
||||||
|
|
||||||
/*!\brief paramètre l'application et lance la boucle infinie. */
|
/*!\brief paramètre l'application et lance la boucle infinie. */
|
||||||
int main(int argc, char ** argv) {
|
int main(int argc, char ** argv) {
|
||||||
|
if (SDL_Init(SDL_INIT_AUDIO) == -1) {
|
||||||
|
fprintf(stderr, "SDL_Init: %s\n,", Mix_GetError());
|
||||||
|
exit(3);
|
||||||
|
}
|
||||||
/* tentative de création d'une fenêtre pour GL4Dummies */
|
/* tentative de création d'une fenêtre pour GL4Dummies */
|
||||||
if(!gl4duwCreateWindow(argc, argv, /* args du programme */
|
if(!gl4duwCreateWindow(argc, argv, /* args du programme */
|
||||||
"Solar System", /* titre */
|
"Solar System", /* titre */
|
||||||
@ -103,6 +110,7 @@ int main(int argc, char ** argv) {
|
|||||||
gl4duwDisplayFunc(draw);
|
gl4duwDisplayFunc(draw);
|
||||||
/* boucle infinie pour éviter que le programme ne s'arrête et ferme
|
/* boucle infinie pour éviter que le programme ne s'arrête et ferme
|
||||||
* la fenêtre immédiatement */
|
* la fenêtre immédiatement */
|
||||||
|
|
||||||
gl4duwMainLoop();
|
gl4duwMainLoop();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -111,6 +119,22 @@ int main(int argc, char ** argv) {
|
|||||||
* utilisées dans ce code */
|
* utilisées dans ce code */
|
||||||
void init(void) {
|
void init(void) {
|
||||||
uint id[9], sun_id, i, moon_id[18];
|
uint id[9], sun_id, i, moon_id[18];
|
||||||
|
int flags = MIX_INIT_MP3;
|
||||||
|
int initted = Mix_Init(flags);
|
||||||
|
if ((initted & flags) != flags) {
|
||||||
|
fprintf(stderr, "Mix_Init: Failed to init required mp3 support!\n");
|
||||||
|
fprintf(stderr, "Mix_Init: %s\n,", Mix_GetError());
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024) == -1) {
|
||||||
|
fprintf(stderr, "Mix_OpenAudio: %s\n,", Mix_GetError());
|
||||||
|
exit(4);
|
||||||
|
}
|
||||||
|
if (bsound == NULL)
|
||||||
|
bsound = Mix_LoadWAV("./space.wav");
|
||||||
|
if (Mix_PlayChannel(-1, bsound, 0) < 0)
|
||||||
|
fprintf(stderr, "Mix_PlayChannel: %s\n", Mix_GetError());
|
||||||
|
|
||||||
|
|
||||||
// create all spheres.
|
// create all spheres.
|
||||||
_sun = mkSphere(12, 12); /*ça fait 12x12x2 triangles !*/
|
_sun = mkSphere(12, 12); /*ça fait 12x12x2 triangles !*/
|
||||||
@ -121,6 +145,7 @@ void init(void) {
|
|||||||
_planet[i] = mkSphere(12, 12);
|
_planet[i] = mkSphere(12, 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// get all textures.
|
// get all textures.
|
||||||
sun_id = getTexFromBMP("images/2k-sun.bmp");
|
sun_id = getTexFromBMP("images/2k-sun.bmp");
|
||||||
id[0] = getTexFromBMP("images/2k-mercury.bmp");
|
id[0] = getTexFromBMP("images/2k-mercury.bmp");
|
||||||
@ -749,6 +774,8 @@ static void mouse(int button, int state, int x, int y) {
|
|||||||
/*!\brief à appeler à la sortie du programme. */
|
/*!\brief à appeler à la sortie du programme. */
|
||||||
void sortie(void) {
|
void sortie(void) {
|
||||||
int i;
|
int i;
|
||||||
|
Mix_CloseAudio();
|
||||||
|
Mix_Quit();
|
||||||
if(_sun) {
|
if(_sun) {
|
||||||
freeSurface(_sun);
|
freeSurface(_sun);
|
||||||
_sun = NULL;
|
_sun = NULL;
|
||||||
@ -765,6 +792,9 @@ void sortie(void) {
|
|||||||
_planet[i] = NULL;
|
_planet[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (bsound)
|
||||||
|
Mix_FreeChunk(bsound);
|
||||||
|
bsound = NULL;
|
||||||
/* libère tous les objets produits par GL4Dummies, ici
|
/* libère tous les objets produits par GL4Dummies, ici
|
||||||
* principalement les screen */
|
* principalement les screen */
|
||||||
gl4duClean(GL4DU_ALL);
|
gl4duClean(GL4DU_ALL);
|
||||||
|
Loading…
Reference in New Issue
Block a user