inconnu[pure] >
controle les valeurs de retour de tes fonctions :
genre regarde si screen n´est pas a NULL, et pareil opur tes surfaces chargées, regarde les valeurs de ton rectangle Backround, etc ! ! ![]()
Il y a des debuggers de dispos dans les compilos : tu definis des points d´arret, tu lances en mode debug, et tu regarde la valeur d´une ou une autre variable...
[]king[] > pas d´autres solutions si ce n´est pas trié ![]()
apres, rien ne t´empeche de trier, puis de faire la dichotomie ensuite : tout dépend bien sur l´utilisation que tu en fais :
si tu vas faire 50000 recherches, autant trier un bon coup : globalement tu iras plus vite
si tu ne veut faire qu´une recherche, alors laisse comme ça...
Pour trier, jette un oeil a mon exemple sur qsort dans mon tuto : §G_11
croissant et décroissant, les 2 marchent comme tu peux t´en douter...
J´ajouterai que c´est instinctif :
imagine qu´on joue a " devine le nombre que j´ai choisi entre 1 et 1000, je te dis + ou -"
Si tu n´es pas bete, tu vas me dire d´abord :
" 500 ? "
et si je te réponds -, tu vas me dire 250
si je te réponds +, tu vas me dire 750
--> dichotomie...
JeanYvesYves>>Je me demandais si se n´étais pas plus judicieux de supprimer ce topic pour créer le sujet: " J´aide les personne en C/C++ 2" ![]()
boah, autant le laisser ![]()
Dans ton tuto tu dis " Nous créons la variable de type FMUSIC_MODULE", donc c´est un type appartenant à une structure ?
Sinon t´as fait des fautes ![]()
" qui garderonT, eux, des sons de type wav ou MP3"
" supportent largement 32 canaux, voirE davantage"
" certains musiciens ont plusieurs" / / pas de " s" à plusieur
J´arrête là
Sinon un truc dont je suis pas sûr mais qui m´a tilté : " 32 est le nombre de canaux que vous pouvez jouer en meme temps vous pouvez, avec ce parametre, lancer 42 musiques ou sons en meme temps" > s´il n´y a que 32 channels, on peut logiquement ne jouer que 32 sons, non ![]()
Voilà voilà j´ai voulu montrer que JY² n´est pas infaillible et je me prends à mon piège > il y a un s à plusieurs

Ah ! et sinon tu dis aussi qu´il faut faire " ./fichier.mp3" pour lire un son placé dans le même dossier que l´exe. Il me semble pourtant que j´avais fait juste " fichier.mp3" pour le lire.... je vérifierai quand je m´y remettrai.
héhé ! ! bien fait pour le plusieurs ![]()
je ne suis pas infaillible en orthographe, il te suffit de voir la faute - honteuse - du titre du topic...
Enfin bref
ça arrive ! ce qu´il ne faut pas, c´est faire 3 fautes par mot
FMUSIC_MODULE est un type défini par FMOD ![]()
" s´il n´y a que 32 channels, on peut logiquement ne jouer que 32 sons, non"
--> tu peux jouer que 32 sons A LA FOIS ! !
Ce qui est déja violent ![]()
Quand tu as fini de jouer un son, tu libere le channel au son suivant.
Un jeu comme Mario Bros ( u vieux) utilise 2 canaux : 1 pour la musique, un pour les sons !
Tu as toujours qu´un son a la fois : quand tu sautes par exemple. Dans les vieux jeux, on entend bien ça : quand un nouveau son commence, il coupe le précédent ![]()
Sinon, on peut utiliser + de canaux bien sur !
y´a ue fonction qui recupere le nombre de canaux.
Dans ce cas pourquoi tu dis qu´on peut " lancer 42 musiques ou sons en meme temps" ?
Bon voila j´ai trouvé mon erreur, mais j´arrive pas a la reparer voila:
SDL_Init(SDL_INIT_VIDEO) me retourne un -1
et dans mon fichier stderr il m´ecrit:
Fatal signal: Segmentation Fault ( SDL Parachute Deployed)
< JeanYvesYves va vérifier>
parce que j´ai fait ça a 0h30 ![]()
je corrigerai ça ce soir : faute de frappe, bien sur que c´est 32 et non 42 ![]()
si je regarde le dernier post avec du code que tu as fait :
juste derriere ton main, tu as un appel a " initialisation" --> tres bien
donc je regarde ta fonction initialisation
et je vois tout de suite :
atexit(SDL_Quit);
--> Pourquoi ? ???? Inutile !
screen=SDL_SetVideoMode(480, 360, 24,
SDL_DOUBLEBUF|SDL_HWSURFACE)
--> Non ! SDL n´est pas initialisé, il ne peut pas marcher :
Avant cette ligne ( et meme a la place de ton atexit, tu mets ton SDL_init(SDL_INIT_VIDEO)
Il ne faut pas le mettre plus loin.
Le SDL_init doit etre la PREMIERE fonction de SDL a etre lancée...
-- HS --
elle m´a bien fait marrer la chanson de Cabrel, j´en ai une qui traite d´internet " Ooooooh internet c´est pas net", elle est trop aussi ![]()
Merci mais après avoir fais la fonction Initialisation() sa ne continue plus pourquoi.
Re-voici le code:
/ *
using namespace std;
/ *
SDL_Surface *screen, *intro, *fin, *backround, *raquette, *briqueR, *briqueG, *briqueB, *briqueS, *balle;
/ *
SDL_Rect Backround={0, 0, 480, 360};
SDL_Rect BalleR;
SDL_Rect Raquette;
SDL_Rect BriqueR[10], BriqueG[10], BriqueB[10], BriqueS[10];
/ *
FSOUND_SAMPLE *sound1;//Son pour collisions balle/raquette
FSOUND_SAMPLE *sound2;//Son pour collisions balle/brique
/ *
FMUSIC_MODULE *Backround_Music;//Musique de fonds
/ *
SDL_Event event, Debut;
/ *
Uint8 *keys, *debut;
/ *
short score=0;//Le score est à 0;
short vie=3;//On commence avec trois vies(balles).
short BalleX, BalleY;//Position de la balle.
short RaquetteX, RaquetteY;//Position de la raquette.
short BriqueRX[10], BriqueRY[10];//Position
short BriqueGX[10], BriqueGY[10];//des
short BriqueBX[10], BrqiueBY[10];//briques
short BriqueSX[10], BrqiueSY[10];//
short Balle_Vitesse=1;//La vitesse de la balle en pixel.
short Vitesse=1;//La vitesse du jeu.
short BriqueR_Vie[10];//La
short BriqueG_Vie[10];//vie
short BriqueB_Vie[10];//des
short BriqueS_Vie[10];//briques
short Niveau;//Numero du niveau.5 prévus ![]()
bool Continue_Game;
bool Playing_Game;
unsigned short Postion[8][9];//briqueR=1, briqueG=2, briqueB=3, briqueS=4, NULL=0.
/ /On peut traduire par Position[y][x]
/ *
void Initialisation();
void Introduction();
void Chargement();
void Chargement_Niveau();//Fontions pour initialiser le niveau et pour continuer le jeu.
void Balle();
void Joueur();
void Affiche();
void Victoire();
SDL_Surface *LoadBMP(const char *filename)//Du tutorial de [DmX]
{
SDL_Surface *temp, *image;
temp=SDL_LoadBMP(filename);
image=SDL_DisplayFormat(temp);
SDL_FreeSurface(temp);
return image;
}
int main(int argc, char** argv)
{
short i;//Pour la vitesse de la balle.
short j;//Pour la vitesse du jeu.
Initialisation();
SDL_Delay(1000);
Chargement();
Introduction();
//while(Continue_Game)
//{
//Chargement_Niveau();
//Boucle principale
//while(Playing_Game)
//{
//while(j<=Vitesse)
//{
//void Balle();
//void Joueur();
//j++;
//}
//void Affiche();
//void Victoire();
//}
//}
return 0;
}
void Initialisation()
{
//Pour SDL
SDL_Init(SDL_INIT_VIDEO);
atexit(SDL_Quit);
screen=SDL_SetVideoMode(480, 360, 24, SDL_DOUBLEBUF|SDL_HWSURFACE);
SDL_WM_SetCaption("Casse brique par pandamark ou inconnu[pure]", NULL);
SDL_ShowCursor(0);
//Pour fmod
FSOUND_Init(44100, 4, 0);
}
void Chargement()
{
//Des images
intro=LoadBMP("images/intro.bmp");
raquette=LoadBMP("images/raquette.bmp");
balle=LoadBMP("images/balle.bmp");
briqueR=LoadBMP("images/briqueR.bmp");
briqueG=LoadBMP("images/briqueR.bmp");
briqueB=LoadBMP("images/briqueR.bmp");
briqueS=LoadBMP("images/briqueR.bmp");
//De la musique et des sons
sound1=FSOUND_Sample_Load(FSOUND_FREE, " sons/bounce1.wav", 1, 0, 0);
sound2=FSOUND_Sample_Load(FSOUND_FREE, " sons/bounce2.wav", 0, 0, 0);
Backround_Music=FMUSIC_LoadSong("sons/music.midi"
);
}
void Introduction()
{
bool done;
SDL_BlitSurface(intro, NULL, screen, &);
SDL_Flip(screen);
debut=SDL_GetKeyState(NULL);
while(!done)
{
while(SDL_PollEvent(&))
{
switch(Debut.type)
{
case SDL_KEYDOWN:
if(debut[SDLK_ESCAPE])done=true;
break;
}
}
}
SDL_FreeSurface(intro);
SDL_Delay(500);
}
void Chargement_Niveau()
{
/*
Niveau=1;//On met sa provisoirement un chargement sera inclu dans le jeu.
//Chargement Niveau 1:
if(Niveau==1)
{
Postion=(0, 0, 0, 3, 1, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 2, 0, 0, 2, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 4, 1, 2, 1, 4, 0, 0
);
}
*/
}
inconnu > faut trouver ou ça foire ![]()
tu arrives a débugger sous dev ?
moi je ne connais que le débugger de visual, mais ça doit etre la meme chose sous dev
Koyo-K > hihi
je cherchais un petit MP3 pour l´exemple, j´avais lui, donc voila, mon test de FMOD se fait avec le cabrel des guignols, et le midi de Super Mario Bros ![]()
On dirrait que sa plante durant la fonction chargement et pendant la phase de chargement des image.
ben faut voir les codes de retour de tes LoadBMP : en effet, si le fichier n´existe pas, ou alors si y´a je ne sais quelle erreur, le SDL_Image* retourné vaut NULL
faut voir lequel doit mal se charger.
lol j´ai vu la question sur la recherche dichotomique... pour trier tu peux faire un quicksort, bon JY² je te laisse expliquer ce que c´est ! lol je suis salaud.
posez lui la question s´il explique pas !
solution de facilité : tu utilises qsort ![]()
comme ça, l´algo est déja tout fait, hihi ![]()
J´ai ça dans mon tuto, § G.11
Sinon, le principe de l´algo c´est une autre histoire, le choix du pivot, tout ça, la recursivité, beau lea quicksort ! !
C´est bon j´ai trouvé ![]()