CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 14:00:45

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...

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 14:03:34

[]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...

inconnu[pure]
inconnu[pure]
Niveau 6
09 février 2005 à 14:06:16

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" :-d

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 14:08:02

boah, autant le laisser :)

Koyo-K
Koyo-K
Niveau 9
09 février 2005 à 14:45:11

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 :-p
" 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 :question:

Koyo-K
Koyo-K
Niveau 9
09 février 2005 à 14:46:51

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
:dehors:

Koyo-K
Koyo-K
Niveau 9
09 février 2005 à 15:00:42

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.

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 15:02:09

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.

Koyo-K
Koyo-K
Niveau 9
09 février 2005 à 17:20:06

Dans ce cas pourquoi tu dis qu´on peut " lancer 42 musiques ou sons en meme temps" ?

inconnu[pure]
inconnu[pure]
Niveau 6
09 février 2005 à 17:37:40

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
JeanYvesYves
Niveau 10
09 février 2005 à 17:37:41

< JeanYvesYves va vérifier>
parce que j´ai fait ça a 0h30 :rire:
je corrigerai ça ce soir : faute de frappe, bien sur que c´est 32 et non 42 :)

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 17:42: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...

Koyo-K
Koyo-K
Niveau 9
09 février 2005 à 17:57:32

-- 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 :ok:

inconnu[pure]
inconnu[pure]
Niveau 6
09 février 2005 à 18:03:17

Merci mais après avoir fais la fonction Initialisation() sa ne continue plus pourquoi.
Re-voici le code:
/ *

    • But de la journée:Les placement des brique pour le niveux 1
  • /
  1. include < SDL/SDL.h>
  2. include < fmod.h>
  3. include < stdlib.h>
  4. include < time.h>
  5. include < iostream>
  1. pragma comment(lib, " libfmod.a")

using namespace std;

/ *

    • Les images
  • /

SDL_Surface *screen, *intro, *fin, *backround, *raquette, *briqueR, *briqueG, *briqueB, *briqueS, *balle;

/ *

    • Structure rectangulaire
  • /

SDL_Rect Backround={0, 0, 480, 360};
SDL_Rect BalleR;
SDL_Rect Raquette;
SDL_Rect BriqueR[10], BriqueG[10], BriqueB[10], BriqueS[10];

/ *

    • Les sons
  • /

FSOUND_SAMPLE *sound1;//Son pour collisions balle/raquette
FSOUND_SAMPLE *sound2;//Son pour collisions balle/brique

/ *

    • La musique
  • /

FMUSIC_MODULE *Backround_Music;//Musique de fonds

/ *

    • Les events
  • /

SDL_Event event, Debut;

/ *

    • Les touches
  • /

Uint8 *keys, *debut;

/ *

    • Variables globales
  • /

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]

/ *

    • Les fonctions
  • /

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
);
}
*/
}

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 18:13:47

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 :)

inconnu[pure]
inconnu[pure]
Niveau 6
09 février 2005 à 18:26:39

On dirrait que sa plante durant la fonction chargement et pendant la phase de chargement des image.

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 18:28:21

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.

XyTiX
XyTiX
Niveau 8
09 février 2005 à 18:42:18

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 !

JeanYvesYves
JeanYvesYves
Niveau 10
09 février 2005 à 18:47:27

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 ! !

inconnu[pure]
inconnu[pure]
Niveau 6
09 février 2005 à 18:50:05

C´est bon j´ai trouvé :-d

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment