Débutant en C a du mal avec la SDL

Résolu/Fermé
Gaston_Lagaffe Messages postés 677 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 2 février 2012 - 7 août 2009 à 21:59
Gaston_Lagaffe Messages postés 677 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 2 février 2012 - 27 août 2009 à 20:36
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...).

5 réponses

Ghislain 2000 Messages postés 96 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 31 décembre 2011 18
7 août 2009 à 22:17
Bonjour,
1 : Fait un variable globale
2 : idem
0
> 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....
0
Gaston_Lagaffe Messages postés 677 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 2 février 2012 51
9 août 2009 à 21:19
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.
0
DarkMyra Messages postés 138 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 22 décembre 2009 13
10 août 2009 à 00:21
non il veut qu'on passe direct à faire des GTA 3D en ligne multijoueur durée de vie 200h
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gaston_Lagaffe Messages postés 677 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 2 février 2012 51
27 août 2009 à 20:36
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)
0