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

[C/SDL] Prob SetColorKey

KeepSmile
KeepSmile
Niveau 4
26 février 2007 à 19:06:25

ok alors ce que je te propose, c´est que tu nous envoie tout ton projet afin qu´on regarde ce qui va pas :). Car apparament ton problème vient du faites qu´il n´arrive pas à charger l´image BMP qui est sans doute du au faite que tu n´es pas assez de mémoire ou qu´il n´arrive pas à lire le fichier.

vexover
vexover
Niveau 9
26 février 2007 à 19:22:54

http://www.megaupload.com/fr/?d=L8BAZUU3

voilà.

KeepSmile
KeepSmile
Niveau 4
26 février 2007 à 20:33:03

Alors je viens de faire quelques petits test sur ton code, c´est vrai que ton problème m´a parut bizarre, mais j´ai finalement (je pense) trouvé le problème, l´enregistrement de tes fichiers BMP on mal été fait, alors ce que je te conseil de faire c´est de les réenregistrées.

Tu les ouvres 1 par 1 sous paint et tu les réenregistres en BMP.

Par contre ton code est assez lourd :) tu crée des SDL_Surface* pour rien, tu devrais faire un système de sprite qui serait beaucoup plus avantageux en ce qui concerne l´espace mémoire occupé, le nombre d´image crée, le nombre de surface crée, l´aération du code ...etc.

Regarde sur Google, il y a plein d´exemple, c´est pas très difficile à gérer, il y a même un exemple sur le site de FVirtman si je ne me trompe point.

SDL_Flip(ecran); => Fait le dans Pause(), sinon ca a aucun interêt.

Un conseil aussi, commente ton code (fait pas des paragraphes, met l´essentiel afin de t´y retrouver) et vérifie après chaque fonction que tous c´est bien passé comme te l´a dit FVirtman, c´est très utile surtout pour repérer les erreurs ou même réaliser un traitement adéquate sans faire planter tous le programme.

Bonne chance :)

vexover
vexover
Niveau 9
26 février 2007 à 21:02:36

En effet le problème venait de là !
Merci beaucoup, je vais essayer d´appliquer tes conseils

vexover
vexover
Niveau 9
27 février 2007 à 14:11:44

Bon, j´ai maintenant un autre problème minime je pense, et je reposte ici pour ne pas encombrer le forum d´un topic supplémentaire :
j´ai commencé à réorganiser mon code et je suis donc passé en programmation modulaire.
Mon programme n´est pour le momment constitué que de 3 fichiers : main.c , affichage.c , affichage .h . affichage . h contient seulement void initialisation(); .
affichage.c lui comprend la fonction initialisation , le code contenu à l´interieur de celui-ci est :
http://rafb.net/p/50Y9k563.html

Le problème survient au moment de la compilation de main.c :

  1. include <stdlib.h>
  2. include <stdio.h>
  3. include <SDL/SDL.h>
  4. include "affichage.h"

void pause();

int main(int argc, char *argv[])
{
initilisation();

SDL_BlitSurface(fond, NULL, ecran, &positionFond);

SDL_Flip(ecran);
pause(); // Mise en pause du programme

SDL_FreeSurface(fond);
SDL_Quit(); // Arrêt de la SDL

return EXIT_SUCCESS; // Fermeture du programme
}

void pause()
{
int continuer = 1;
SDL_Event event;

while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}

le debugger m´indique qu´il y a une erreur au niveau de SDL_BlitSurface(fond, NULL, ecran, &positionFond);
12 C:\Dev-Cpp\Projets\projet graphiques\projet 2D\main.c `fond´ undeclared (first use in this function)

l´initialisation ne semble donc pas avoir marchée . pourtant aucune erreur n´est signalée à l´utilisation de initilisation(); .
Savez-vous d´où vient l´erreur ? et accessoirement auriez-vous des sources de programmes organisés en programmation modulaire ( après avoir recherché, les sources que j´ai trouvé sont de tous petits programmes ne contenant qu´un main.c).

KeepSmile
KeepSmile
Niveau 4
27 février 2007 à 14:49:33

c´est tout à fait normal :), tu déclare localement la variable fond dans la fonction initialisation() donc ton main() lui il l´a connait pas.

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