Débutant en C a du mal avec la SDL
Résolu
Gaston_Lagaffe
Messages postés
677
Date d'inscription
Statut
Membre
Dernière intervention
-
Gaston_Lagaffe Messages postés 677 Date d'inscription Statut Membre Dernière intervention -
Gaston_Lagaffe Messages postés 677 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà, je fais du C depuis quelques mois (pas trop intensivement). En suivant le tutoriel du SDZ je suis arrivé à la partie SDL.
Suite aux petits exercices de dégradés j'ai eu l'idée de faire une petite palette de sélection de couleur.
J'ai en fait deux problèmes, issus de la même cause :
- pour éviter les série de SDL_FreeSurface à la fin de la fonction main, juste avant la cloture du programme, je voudrais regrouper tout ce qui est libération de la mémoire dans une fonction. Et le problème se pose là : si je fais
SDL_FreeSurface(maSurface);
dans une fonction, alors que maSurface a été déclarée dans une autre fonction, le compilateur me dit : variable non déclarée dans cette fonction... etc
- dans ma fonction qui gère l'affichage des surfaces, quand je fais un
SDL_FillRect(maSurface, NULL, SDL_MapRGB(ecran->format, 255, 255, 255);
mon compilateur ne trouve pas ecran->format puisque ecran n'pas été déclaré dans la même fonction
Et comme je risque d'avoir ce genre de problèmes tout au long de la construction de mo projet, je ne vois vraiment pas comment m'en sortir, à moins de bourrer mon programme de variables globales (ce qui est paraît-il pas très recommandé) ou de ne faire qu'une fonction (ce qui ne l'est paraît-il pas non plus...).
Voilà, je fais du C depuis quelques mois (pas trop intensivement). En suivant le tutoriel du SDZ je suis arrivé à la partie SDL.
Suite aux petits exercices de dégradés j'ai eu l'idée de faire une petite palette de sélection de couleur.
J'ai en fait deux problèmes, issus de la même cause :
- pour éviter les série de SDL_FreeSurface à la fin de la fonction main, juste avant la cloture du programme, je voudrais regrouper tout ce qui est libération de la mémoire dans une fonction. Et le problème se pose là : si je fais
SDL_FreeSurface(maSurface);
dans une fonction, alors que maSurface a été déclarée dans une autre fonction, le compilateur me dit : variable non déclarée dans cette fonction... etc
- dans ma fonction qui gère l'affichage des surfaces, quand je fais un
SDL_FillRect(maSurface, NULL, SDL_MapRGB(ecran->format, 255, 255, 255);
mon compilateur ne trouve pas ecran->format puisque ecran n'pas été déclaré dans la même fonction
Et comme je risque d'avoir ce genre de problèmes tout au long de la construction de mo projet, je ne vois vraiment pas comment m'en sortir, à moins de bourrer mon programme de variables globales (ce qui est paraît-il pas très recommandé) ou de ne faire qu'une fonction (ce qui ne l'est paraît-il pas non plus...).
A voir également:
- Débutant en C a du mal avec la SDL
- Logiciel de programmation pour débutant - Guide
- Pourquoi la tnt fonctionne mal en ce moment - Guide
- Logiciel montage vidéo débutant - Guide
- Dans le document à télécharger : affichez l'ensemble des diapositives à l'écran avec 5 diapositives par ligne. repérez le groupe de 3 diapositives avec une fleur identique alignées verticalement, supprimez la première d'entre elles. un nouveau groupe de 3 diapositives avec une fleur identique alignées verticalement apparaît, supprimez encore la première d'entre elles. déplacez les 3 premières diapositives de la 4e ligne au début de la présentation. quel mot est formé par les lettres de la première colonne ? - Forum Powerpoint
- Le fichier à télécharger contient une vidéo et des sous-titres. dans un logiciel de montage vidéo : importez la vidéo. doublez la vitesse de toute la vidéo. copiez le plan avec la terre. insérez cette copie au début du montage. importez les sous-titres à votre montage. quel est le sous-titre du plan avec les gâteaux ? - Forum TV & Vidéo
5 réponses
> Voilà, je fais du C depuis quelques mois (pas trop intensivement). En suivant le tutoriel du SDZ
Un bon conseil, arrête de suite.
Le niveau en C est plus que minable et la SDL, qu'est-ce que ça vient faire là ?!
C'est une librairie complètement obsolète, qui n'a même pas d'accélération Hardware !
On n'est plus en 1980 à faire des Pong ou des Mario Bros !!!
Ces "tutos" du sdz sont complètement stupides : sur un "tuorial en C, il sortent d'utiliser SDL et sur un tutorial en C++, d'utiliser QT !!
Ca n'a absolument AUCUN sens.
(et QT n'est quasi plus utilsé sur le marché français non plus !)
Et les débutants gobent ça et utilisent des librairies totalement inutiles et qui n'ont aucun rapport avec le C ou C++, c'est délirant....
Un bon conseil, arrête de suite.
Le niveau en C est plus que minable et la SDL, qu'est-ce que ça vient faire là ?!
C'est une librairie complètement obsolète, qui n'a même pas d'accélération Hardware !
On n'est plus en 1980 à faire des Pong ou des Mario Bros !!!
Ces "tutos" du sdz sont complètement stupides : sur un "tuorial en C, il sortent d'utiliser SDL et sur un tutorial en C++, d'utiliser QT !!
Ca n'a absolument AUCUN sens.
(et QT n'est quasi plus utilsé sur le marché français non plus !)
Et les débutants gobent ça et utilisent des librairies totalement inutiles et qui n'ont aucun rapport avec le C ou C++, c'est délirant....
Puisque tu m'as l'air assez exigeant sur la qualité d'une formation en programmation, pourrais tu m'indiquer un meilleur moyen de me former ?
Il me semble que le but du chapitre sur la SDL a titre d'expérience pour apprendre à utiliser une librairie.
Et que faudrait-il que j'arrête ? La SDL, le site du zéro, le C ou la programmation ?
@ Ghislain 2000 : bon, alors je vais faire comme ça.
Il me semble que le but du chapitre sur la SDL a titre d'expérience pour apprendre à utiliser une librairie.
Et que faudrait-il que j'arrête ? La SDL, le site du zéro, le C ou la programmation ?
@ Ghislain 2000 : bon, alors je vais faire comme ça.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bah, en fait je me suis débrouillé en passant la variable *ecran en variable globale, et pour l'histoire des libérations de mémoire en fait j'appelle ma fonction plusieurs fois dans mon programme, et elle a un argument etat, selon lequel, elle attribue de la émoie, ou elle agit, ou elle libère de la mémoire (à la fin)