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

_[CONKER]_
_[CONKER]_
Niveau 10
19 juillet 2004 à 14:08:37

T´as oublié les includes ! ! ^^
Rajoute en haut du prog : #include < stdio.h>
Ensuite, c´est pas plutôt
scanf("%e", &); à la place de
scanf("e%", valeur) ; ?

_[CONKER]_
_[CONKER]_
Niveau 10
19 juillet 2004 à 14:09:47

De plus tu as fait plusieurs erreurs de syntaxes, fais attention : tu as noté " care" * valeur alors que t´as variable se nomme " carre".

hugo42
hugo42
Niveau 9
19 juillet 2004 à 15:37:03

merci pour tout!!

ps2M
ps2M
Niveau 6
19 juillet 2004 à 15:51:42

je pige rien au variable et calcules... enfin si je pige mais pas tout ^^´

Voila

JeanYvesYves
JeanYvesYves
Niveau 10
19 juillet 2004 à 15:54:08

_[cOnkeR]_ > tu commences a bien te débrouiller :ok:
ou en es tu toi en ce moment ?

hugo42 > faut bien etre rigoureux sur tout :)

ps2M > précise ta question ! précise exactement ce que tu ne comprends pas dedans

lalelale
lalelale
Niveau 5
19 juillet 2004 à 17:12:42

Bon, j´ai reussi à résoudre mon premier problème seul. Mais j´en ai un autre mtn.

Tjs en SDL, je ne sais pas pourquoi mais les if et les else ne marche pas bien. ex

void CCompetence::fonct_VOL1(int securite) / /dans ce cas, exclusivement effraction pour l´instant
{
init_SDL();

/ / _
SDL_Surface* a; / /nom de la surface |
SDL_Surface* deverrouille; / /idem |
SDL_Surface* tjs_verrouille;//idem |
SDL_Surface* libre;// |
SDL_Rect rect1;//je dessine le rectangle de la surface verrouille |
SDL_Rect rect2;//deverrouille | tout ce qui
SDL_Rect rect3;//tjs_verrouille |
SDL_Rect rect4; / / |
rect4.x=350;// |
rect4.y=350;// | a rapport avec
rect1.x=350;// | le futur
rect1.y=350;// | affichage
rect2.x=250;// |
rect2.y=150;// |
rect3.x=250;// |
rect3.y=150;// |
int s=1; / / |
/ /_|

int XPVOL=8;//points d´XP de vol
int m_crochet=10;
bool sortir=false;
srand(time(NULL));
int hasard2=rand()%10;
if(securite>0)

while(!sortir)

{ SDL_PollEvent(&);

if(m_VOL+m_crochet-securite-hasard2>0)
{deverrouille=LoadBMP("deverrouille.bmp");

XPVOL *=2;
if(XPVOL>15)
m_VOL +=1;

sortir=true;

}

else
tjs_verrouille=LoadBMP("tjs_verrouille.bmp") ;

sortir=true;

}
if(securite == 0)
{

libre=LoadBMP("libre.bmp");

}
/ * SDL_BlitSurface(a,NULL,screen,&1); */

SDL_BlitSurface(deverrouille,NULL,screen,&2);

SDL_BlitSurface(tjs_verrouille,NULL,screen,&3)
;
SDL_BlitSurface(libre,NULL,screen,&4);
SDL_Flip(screen);

}

}

Lorsque je met ce code, si ca a reussi ce me met bien porte deverrouille, mais les autres ne marche pas!!!! De plus , lorsque ca me met " la serrure est deverrouille" il y a un écran noir qui s´affioche tout autour!!J´ai pourtant mes images dans le même repertoire que mon code!

Alors mes questions. Comment marche les if else avec SDL. Comment effacé l´écran noir autour de mon " serrure est deverouillé"

PS : je ne met pas la classe ici, ca ne servirait à rien

lalelale
lalelale
Niveau 5
19 juillet 2004 à 17:16:52

Et puis j´ai oublié de demander, comment je peux savoir quels sont les différents code assigné à chaque touche ( par exemple, pour entre c´est SDLK_RETURN)

Repondez moi stp

lalelale
lalelale
Niveau 5
19 juillet 2004 à 17:20:19

Excuseez moi de polluer ce topic mais il n´y a pas d´options editer.

Je voudrais préciser que dans l´image qui affiche " porte deverrouille" il n´y a pas d´ecran noir autour.

Vous auriez pas un ch´tit log´ pour faire des graphismes 2D pas trop nul?

JeanYvesYves
JeanYvesYves
Niveau 10
19 juillet 2004 à 17:21:13

bon, alors :

les if marchent pareil avec SDL ( heureusement)

mais je vois que quoiqu´il arrive tu blit les 3 : ( déverouille, tjs_verrouille et libre)
or tu les load dans les if ( donc y´a des fois ou ils ne sont pas chargés, mais pourtant tu les blit --> zone noire)

Pour effacer l´écran, je ne sais pas si SDL propose qq chose, mais je sais que dans la pratique, on n´efface pas l´écran : on blit le nouveau décor par dessus, et de partout --> gain de temps.
sinon, tu n´as qu´a carreler noir dans un 1er temps.

JeanYvesYves
JeanYvesYves
Niveau 10
19 juillet 2004 à 17:22:54

pour les touches, la doc officielle :)
voila le lien direct :

http://sdldoc.csn.ul.ie/sdlkey.php

et le lien référence :

http://www.libsdl.org

dans " doc project" a gauche

JeanYvesYves
JeanYvesYves
Niveau 10
19 juillet 2004 à 17:24:08

en ce qui concerne afficher une image sans la zone noire qu´elle porte, j´ai ça dans mon tuto :

http://www.fvirtman.fr.st

info/progs/tutoC++
§ 2.1.3 il me semble

JeanYvesYves
JeanYvesYves
Niveau 10
19 juillet 2004 à 17:26:35

sinon en ce qui concerne RAM ou VRAM pour ce qui va vite ou moins vite, tout dépend de ta carte graphique : regarde plutot la fonction LoadImage du §2.1.3
il y a des if qui testent s´il y a assez de VRAM

lalelale
lalelale
Niveau 5
19 juillet 2004 à 18:09:56

C bon ca marche!! il suffisait de les bliter au cas par cas(comme tu m´as dis de faire quoi). Par contre j´ai toujours ce probléme récurent. Ca me met un écran noir quand ca affiche le resultat. En plus, je ne peux pas revenir en arriere, je suis oblige de faire CTRL+ALT+SUPPR ! ! Tu pourrais pas me dire coment je fais pour bliter mon decors par dessus?(bon, je vais continuer à essayer mais je pose la question quand meme).

ais j´ai encore une question, comment je fais pour connaitre les numéros des couleurs ( comme toi tu as)??

Sinon, merci pour tes liens et pour tes réponses si rapides.

JeanYvesYves
JeanYvesYves
Niveau 10
19 juillet 2004 à 18:16:30

pour faire tes tests, enleve le mode FULLSCREEN
que tu vas trouver dans le code :) je te laisse trouver : comment ça, ça te lance en mode fenetré, et tu peux cliquer sur la croix.

pour le code des couleurs, les logiciels de dessins permettent souvent de voir le code couleur.
je te laisse te renseigner sur la " synthese additive des couleurs" pour savoir comment les couleurs sont codées.

Un écran noir quand tu affiches le résultat ?
tu n´as pas tes " deverrouille" qui s´affichent ?

lalelale
lalelale
Niveau 5
19 juillet 2004 à 18:58:36

En fait, ca m´affiche un écran noir tout autour. Mais c´est pas du aux couleurs.Ca fait qu´au milieu j´"ai le deverrouille mais je n´ai plus rien d´autre. De plus, la touche entré ( qui est censé faire sortir le prog´ de la boucle) ne marche plus.

lalelale
lalelale
Niveau 5
19 juillet 2004 à 19:03:25

Sinon, j´ai oublié de demander, je sais pas pourquoi mais j´ai un probleme avec ce code là :

void vol()
{ init_SDL();
SDL_Rect rect;
SDL_Surface* vol_reussi ;

int sx=1,sy=1;
rect.x=250;
rect.y=250;
SDL_Surface* vol_rate;
SDL_Rect rect5;
rect5.x=250;
rect5.y=250;

srand(time(NULL));
int hasard=rand()%10;

if(hasard>3)
{
vol_reussi=LoadBMP("vol_reussi.bmp");
SDL_BlitSurface(vol_reussi,NULL,screen,&);

}
else
{
vol_rate=LoadBMP("cool.bmp");
SDL_BlitSurface(vol_rate,NULL,screen,&5);

}

SDL_Flip(screen);

}

Le truc c que ca me met le resultat 1/4 de secondes!! Je fais comment pour que ca se prolonge?

kokoala
kokoala
Niveau 7
19 juillet 2004 à 21:07:47

avec SDL_GetTicks()

lag-it
lag-it
Niveau 10
19 juillet 2004 à 21:18:52

Il te manque la boucle principale dans ton programme : un truc du genre ( pseudo-code ) :

while( on a pas demandé de quitter )
{
On calcule;
On affiche;
. ..;
}

Ton programme ne fait qu´un cycle et tombe direct sur la fin.
Je pense que c´est ca car tu n´as pas mis le main dans ton post.

lalelale
lalelale
Niveau 5
19 juillet 2004 à 22:25:27

Eh bine, dans mon code j´ai bien la boucle. Maios ce n´est pas le programme principal qui bugge mais la fonction. En fait le programme reste indefinniment ( a moins que j´appuie sur echap) Mais le resultat de ma fonction reste 1/4 de seconde. Et j´ai essaye de faire une boucle, mais ca ne marche pas. Je dois mal m´y prendre. Je fais un truc de ce genre :

if(hasard>3)
{while(1)
{
vol_reussi=LoadBMP("vol_reussi.bmp");
SDL_BlitSurface(vol_reussi,NULL,screen,&);

if(event.type==SDL_KEYDOWN&&.key.keysym.sym==
SDLK_TAB)
break;
}
}
else
{while(1)
{
vol_rate=LoadBMP("cool.bmp");
SDL_BlitSurface(vol_rate,NULL,screen,&5);

if(event.type==SDL_KEYDOWN&&.key.keysym.sym==
SDLK_TAB)
break;

}

}

SDL_Flip(screen);

}

Remarque je n´ai pas compile pour voir si ca marchait.

Ca ne marche pas chez moi ( pourtant ca devrait non?)

lag-it
lag-it
Niveau 10
19 juillet 2004 à 22:34:50

Je me sert plus de la SDL et je connais plus les fonctions.
Mais ton code la est moche, fait plutot :

if(hasard>3)
vol_reussi=LoadBMP("vol_reussi.bmp");
else
vol_rate=LoadBMP("cool.bmp");

while(1)
{
SDL_BlitSurface(vol_rate,NULL,screen,&5);

if(event.type==SDL_KEYDOWN&&.key.keysym.sym==

SDLK_TAB)
break;
}
SDL_Flip(screen);
}
}

Il faut que SDL_Flip soit à l´intérieur de ta boucle, sinon c´est normal que cela ne marche pas : il faut echanger tes buffers dans le double-buffering.
Lis un tuto sur la SDL pour plus d´infos :)

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