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

Perdu_de_linfo
Perdu_de_linfo
Niveau 9
13 février 2005 à 18:56:39

J´ai une Nvidia
La version des drivers est 66.93
Vraiment un étrange problème, si vous pouvez m´aider, je vous en remercie mille fois ( même si vous ne faites que essayer :p)
++

dnob700
dnob700
Niveau 10
13 février 2005 à 19:21:04

au passage si qqn retourne sur la page précédente, j´ai quelques questions sur iostream.

merci.

jejej
jejej
Niveau 9
13 février 2005 à 19:24:23

Bon , en fait le probleme des headers , n´en est pas un , parceque il n´y a rien qui cloche . ..
pas besoin de #ifndef avec dev-cpp ? Oo

mais la , j´ai un probleme avec la librairie SDL

j´affiche une image avec SDL_BlitSurface aux coordonnées ( Xpos , Ypos )
comme ceci :
SDL_BlitSurface( image , NULL , Affichage , & ) ;

ca , ca marche :)
mais le probleme , c´est que pour eviter les " trainées d´image " , il me faut redessiner aussi l´arriere plan

la , si je le dessine en entier , avec la meme fonction mais Xpos = 0 et Ypos = 0 , ca marche parfaitement , mais , pourquoi redessiner TOUT l´écran , alors qu´il suffirait de redessiner l´écran des coordonnees ( Xpos,Ypos) à ( Xpos+700,Ypos+200) ( mon image fait 700*200 pixels ) ?

j´utilise donc SDL_BlitSurfacee comme ceci :

int AffichageOuRien(SDL_Surface *image , int x , int y, int x2 , int y2 , int w , int h)
{
SDL_SetColorKey( image , SDL_SRCCOLORKEY , SDL_MapRGBA( image->format,0 , 255 , 0 , 0));
SDL_Rect bidule;
bidule.x = x;
bidule.y = y;
SDL_Rect truc;// Comment ca pas explicites mes noms de structures ?
truc.x = x2;
truc.y = y2;
truc.w = w;
truc.h = h;
SDL_BlitSurface( image , & , Affichage , & ) ;
SDL_Flip(Affichage);
return 0;
}

mais le probleme , c´est que mes pingouins ne s´affichent plus ! !
Si quelqu´un pouvait me dire comment utiliser cette fonction . ..
a noter que je redessine l´écran avant de bouger , donc mes pingouins ne devraient pas etre cachés . ..
sinon , tant pis , je remettrais comme aant , mais c´est dommage . ..

Rikkuman4
Rikkuman4
Niveau 10
13 février 2005 à 20:05:21

bon ce soir des que je serais dans le calme vert 20h30 21h00 je reprenderais de zéro les tutos De jean yves yves :content: je vais me bouger mon gros tas de . .. :rire: de jecone nan je suis content je vais enfin faire quelque chose c´est les vacance depuit le temps que je les att :content: :ok:

Rikkuman4
Rikkuman4
Niveau 10
13 février 2005 à 22:31:53

sa fait depuit 1h30 que je suis sur tes tuto jyy et frenchement je pige trop bien :ok: merci :)

JeanYvesYves
JeanYvesYves
Niveau 10
13 février 2005 à 22:37:06

Hola ! Je reviens de WE ( avec ma copine)
Bref, donc j´ai a rattraper, je ne suis pas sur de répondre a tout, réitérez les demandes si j´en oublie !

jejej > ta fonction semble bizarre, ça ressemble a un Blit simplifié ? Et tu as bien raison de faire ça :) Cependant, je dirais que le flip a la fin n´a rien a faire la :
Si tu flip a chaque fois que tu blit, ça ne fera pas ce que tu veux : blit plusieurs fois, puis, seulement a la fin : flip.

perdu_de_linfo >
dans un premier temps, enleve purement le parametre SDL_FULLSCREEN que tu as dans l´init : ça te permet de faire un mode fenetré, qui, meme plus lent, aura l´avantage de pouvoir se fermer plus facilement qu´un plein écran qui plante :)

As tu bien mis l´image dans le bon répetoire ?
Car si l´image n´est pas chargé, LoadBMP te renvoie NULL : et ça plante derriere.
Essaie de tester les valeurs de retours ( débug)

En ce qui concerne les params des while :
le " 1" veut dire " vrai" en C, donc le 1er while, comme te disait dnob, ça veut dire que ça boucle infiniment.
Le 2e :
SDL_PollEvent(&) te renvoie VRAI si il y a des evenements en attente, FAUX s´il n´y en a pas. Un evenement est, ici, l´appui d´une touche, de la souris, joystick, ou autre...
Donc ce while veut dire, en français :

" Tant qu´il y a un evenement qui attend, récupere le dans " event"..." et apres, dans le corps, il y a analyse de l´evenement récupéré.

dnob700
dnob700
Niveau 10
13 février 2005 à 22:40:27

je me permet de reposter ma question qui a glissé de la page :
est ce qu´en C++ avec iostream on peut effacer l´écran ( la console je veut dire) sans utiliser un system("CLS") c´est à dire juste avec les classe de iostream ( cout.clear() ne fait pas ça apparement).

et aussi, est-il possible de déplacer le curseur à une ligne et une colonne choisis arbitrairement ?

tant que j´y suis, peut-on changer a couleurs de la sortie ? et enfin comment peut-on remplacer le system("pause") par une commande c/c++ ( donc portable) qui se débloque réellement à l´appuie de n´importe quelle touche et pas juste de entrée.

merci d´avance pour vos réponse.

JeanYvesYves
JeanYvesYves
Niveau 10
13 février 2005 à 22:54:54

Ce que tu décris est typiquement la fonctionnalité de conio.h

conio.h était un standard. Je dis " étais" car il s´oublie de plus en plus, et certains compilos l´oublient ( je crois que DevC++ l´accepte toujours, pas sur, mais je crois que certains versions de visual l´oublient)

Il contient donc :
- déplacement du curseur texte
- couleurs texte
- CLS
etc :)

Tiens moi au courant pour me dire si ton compilo le supporte :
tuto sur mon site, dans mon tuto : chapitre B.

JeanYvesYves
JeanYvesYves
Niveau 10
13 février 2005 à 22:58:03

Tu as aussi, la fonction getch() qui permet de tester directement le clavier, ce qui pourrait te remplacer le system("PAUSE")

En ce qui concerne iostream et stdio, leur role n´étant pas de mettre en forme, ils ne savent pas gérer cela.

cout.clear() ou flush ?
permet de vider les caracteres en attente :
si par exemple tu envoies sur un periphérique occupé, autre que la console, et que donc, ça ne peut pas passer, tu utilises cette méthode pour vider le buffer :)

dnob700
dnob700
Niveau 10
13 février 2005 à 23:01:42

j´utilise le compilo du toolkit visual c++ 2003

il a bien conio.h, mais je ne peut pas compiler l´exemple de ton tuto, il ne connait aucune des fonctions que tu utilise.

donc je suppose qu´il n´est pas compatible.

merci quand même.

dnob700
dnob700
Niveau 10
13 février 2005 à 23:02:55

par contre getch() passe bien même s´il est dans conio.h

JeanYvesYves
JeanYvesYves
Niveau 10
13 février 2005 à 23:12:43

d´acc :) comme moi, j´ai visual C++ 6, qui a une version allégée de conio.h, donc mon tuto B, que j´avais fait sous Dev, n´y marche pas... :(

je ne sais pas s´il y a des équivalences...
Sous Linux il y a ncurses.h

Apres, le mieux je pense, c´est le mode graphique, tu ne t´embetes plus avec les limitations de la console :)

Cependant, si tu trouves une lib qui marche sous Visual qui fait ce que conio.h faisait, je suis preneur :)

dnob700
dnob700
Niveau 10
13 février 2005 à 23:37:30

bah, win32 le fait, mais même si je ne suis pas un fana de la portabilité, là ça serait vraiment sacrifié son code sur l´autel de microsoft.

sinon une possibilité serait de compiler avec dev c++ une dll qui incluerait toute les fonction de conio.h

tiens je vais essayer de faire ça un de ces jours.

JeanYvesYves
JeanYvesYves
Niveau 10
13 février 2005 à 23:38:37

Bonne idée ça !
Mais bon, une dll, c´est microsoft, lool :)

Bon, cependant, sans rire, si tu fais ça, je suis preneur ! :)

dnob700
dnob700
Niveau 10
13 février 2005 à 23:42:21

je retire ce que j´ai dit même dev c++ a maintenant une version allégé de conio.h et j´ai esayé avec gcc sous cygwin, mais lui il n´a même pas conio.h !

je crois que cette librairie est définitevement morte.

Koyo-K
Koyo-K
Niveau 9
14 février 2005 à 02:42:35

1- Pourquoi dans ton tuto tu as remplacé cin.get() par system(´PAUSE´) ?

2- C´est quoi la différence entre compile/build/rebuild ?

3- dans mon bouquin : " Un pointeur a toujours la même taille ( 4 octets pour un système à adressage sur 32 bits), mais le langage impose de leur donner un type." > c´est vrai qu´ils font toujours la même taille ? pourtant si on leur donne un type c´est pas pour faire joli quand même :question:

4- j´ai essayé de compiler un bout de code pour lire un . xm, ça compile mais l´exe plante et le débugger dit que FMUSIC_MODULE peut pas être chargé ou quelque chose comme ça. Ca me renvoie à la ligne 270 du fichier crt0.c : __except ( _XcptFilter(GetExceptionCode(), GetExceptionInformation()) )
J´ai au départ codé à partir uniquement de la doc, puis j´ai vu que ça allait pas alors j´ai adapté le code de ton tuto pour voir si c´était vraiment mon code qui était foireux, mais je retrouve la même erreur. Je paste ton code revisité :

int main()
{
FMUSIC_MODULE* x;
FSOUND_Init(44100, 32, 0);
x = FMUSIC_LoadSong("zizique.xm");
FMUSIC_PlaySong(x);
cin.get();
FMUSIC_FreeSong(x);
return 0;
}

JeanYvesYves
JeanYvesYves
Niveau 10
14 février 2005 à 09:06:40

1. cin.get() n´est pas fiable, bcp de monde a eu des ennuis avec, dus a la non uniformité du code \n, bref... met system("PAUSE"); ça marche bien au moins :)

2.
. compile compile ton fichier . cpp que tu traites uniquement.
. build compile tous les fichiers qui ont été modifiés depuis la derniere compilation, et link.
. rebuild recompile tous les fichiers, et link.

3. un pointeur fait toujours la meme taille, cependant, le type qu´il te renvoie dépend du type du pointeur :

sizeof(ce_que_tu_veux * ) =4

sizeof(*int) = 4
sizeof(*char) = 1
sizeof(*short) = 2

Pour fsound, je ne sais pas comment ça se fait, tu dis que ça ne compile pas ? ou alors ça se compile et ça se lance ? si ça se lance vérifie que x ne soit pas a NULL

jejej
jejej
Niveau 9
14 février 2005 à 11:14:13

ooooh merci JYY , je comprenais pas pourquoi mes pingouins clignotaient alors que g t quand meme en DOUBLE BUF + SDL_FLIP(AFFICHAGE) . ..

la ca marche . .. il me reste encore a comprendre pourquoi mes pingouins s´affichent en haut de l´ecran au centre alors que leur coordonnees sont Xpos = 40 , Ypos = 500

et pourquoi ils se deplacent en diagonale , alors que seule Xpos varie . ..

JeanYvesYves
JeanYvesYves
Niveau 10
14 février 2005 à 13:22:24

ce genre d´erreurs, ça sent le copier coller qui a été fait trop vite :

surement que qq part, tu as un truc genre :
machin.x = x;
machin.y = x;

alors que tu aurais du mettre
machin.y = y;
:)

jejej
jejej
Niveau 9
14 février 2005 à 14:29:03

Ca sent aussi le vécu pour toi , JYY ? ^^

c´était exactement ca . ..

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