begin process at 2010 02 10 08:04:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

MASTERMIND (MODE GRAPHIQUE EN SDL)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

MASTERMIND (MODE GRAPHIQUE EN SDL)

samedi 28 janvier 2006 à 16:55:57 | MASTERMIND (MODE GRAPHIQUE EN SDL)

imadonline

slt tt le monde,
je viens de m'initier un peu dans le SDL mé g encor un problém avec les sprites et la gestion de clavier,etant donné ke je conné ke le C .je suis chargé d'élaboré un projet
pour la réalisation de MASTERMIND en mode graphique g besoin d'un exemple de code source et biensur de votre aide NB:g pa trouvé dezs exemple sur le site

merci

samedi 28 janvier 2006 à 20:37:02 | Re : MASTERMIND (MODE GRAPHIQUE EN SDL)

MrdJack

salut, je suppose que tu connais deja les initialisations et tout, alors je passe directement aux autres choses :

niveau graphique, SDL fonctionne avec des surfaces :
SDL_Surface *monImage; // équivalent à un sprite.
SDL_Surface *Screen; // sera notre surface principale de la fenetre

//ensuite on crée la fenetre :
if(!(Screen = SDL_SetVideoMode(largeur, hauteur, bpp, flags)))
{
        return false;
}
SDL_FillRect(Screen, NULL, SDL_MapRGBA(Screen->format,0,0,0,0));
//on remplie en noir

//ensuite, pour charger un bmp dans une surface :
if(!(monImage = SDL_LoadBMP("monImage.bmp"))
{
        Log("chargement impossible : %s\n", SDL_GetError() );
}

et on peut eventuellement rendre une certaine couleur transparente :
SDL_SetColorKey(monImage, SDL_SRCCOLORKEY|SDL_RLEACCEL, SDL_MapRGB(monImage->format, rouge, vert, bleu) );

//ensuite, on va passer à l'affichage des sprites (surfaces) :
//tout d'abord, on définit un rectangle qui va correspondre à la zone de la surface que l'on va afficher (pratique pour séparer une image en plusieures petites...)
SDL_Rect monRectangleSource = {0, 0, 0, 0}
//on note que l'on peut lui donner des valeurs en meme temps si on veut : x, y, w et h
//ou alors on peut faire comme suit :
monRetangleSource.x = monRectangleSource.y = 0;
monRectangleSource.w = monImage->w;
monRectangleSource.h = monImage->h;

//( ici, ca prend toute l'image)

//puis un rectangle qui va définir ou dans l'ecran Screen on va afficher l'image :
SDL_Rect monRectangleDestination = {20, 30, Screen_Width, Screen_Height};
//affiche monImage à x= 20 et y = 30

//puis on blit l'image dans Screen :
SDL_BlitSurface(monImage, &monRectangleSource, Screen, &monRectangleDest);

//ensuite, une fois que tu as effectué toutes les modifications sur screen, tu peut l'actualiser :
SDL_UpdateRect(Screen, 0,0,Screen_Width, Screen_Height);
//c'est comme un double buffer, comme ca, on affiche à l'ecran que ce qui est nessécaire...
//bien evidament, tu peux actualiser qu'un partie de l'ecran si tu veux, ca te permet de garder ce qui etait deja affiché dans le reste de l'image... exemple pour un tetris, pas besoin de réafficher tous les graphiques, juste la zone de jeu suffit...

voilà, j'espere que tu as tout compris, sinon n'hesites pas.

@++



samedi 28 janvier 2006 à 20:46:55 | Re : MASTERMIND (MODE GRAPHIQUE EN SDL)

MrdJack

juste une precision sur  cette partie de code :
SDL_FillRect(Screen, NULL, SDL_MapRGBA(Screen->format,0,0,0,0)); //on remplie en noir
à la place de NULL, on peut bien evidament y mettre n'importe quel rectangle...
bien que ca ne soit pas utile dans ce cas, si on met NULL, ca remplis toute le surface.

et d'autres precisions (je susi tete en l'air) :
SDL_FreeSurface(monImage); va libérer la surface
c'est mieux niveau memoire !!!

et puis il y a SDL_Flip(Screen); qui lorsque les flags sont en double buffering d'afficher l'ecran Screen
c'est pas SDL_UpdateRect() qui le fait dans ce cas...

@++
samedi 28 janvier 2006 à 22:54:39 | Re : MASTERMIND (MODE GRAPHIQUE EN SDL)

imadonline

merci bcp,g trouvé tré interessan,et jaimerai bien ke vou majoutié plus merci d'avance
dimanche 29 janvier 2006 à 17:03:17 | Re : MASTERMIND (MODE GRAPHIQUE EN SDL)

MrdJack

hé bien imadonline, d'abord bonjour....

si tu es un peu patient, je vais peut-etre réaliser un tutorial en francais concernant la sdl.
bien sur, ca va prendre un peu de temps !!!
je pourrais le faire en plusieures parties ( video, evenements, son, joystick etc...)
tout depend si tu es vraiment pressé pour ton projet !

sinon, je te conseille d'aller jeter un coup d'oeuil dans la doc de sdl ( anglais ) qui est assez detaillée pour les bases...
ou ya un tuto en .doc (recherche : codes, tutorial sdl sur codes sources) perso je ne sais pas ce qu'il vaut, je n'ai pas regardé plus....
ou bien regarde dans diverses sources exposées sur cs.

pense a me prevenir si tu veux un tuto, je pense que de toutes maniere j'en ferais ptete un car le site en manque un peu a mon gout !!! mais la rapidité dependra de la demande !!!

au fait, tu as réussit a utiliser tout ce que je t'ais montré dans le dernier post ?

@++



dimanche 29 janvier 2006 à 20:48:36 | Re : MASTERMIND (MODE GRAPHIQUE EN SDL)

imadonline

bjr,oui oui biensur c grace a ca ke g pu comprendre comment pouvoir deplacer des objet sur l'ecran,merci bcp.pr le tuto yen a presque pa sur le net surtout en francais,ca serai bien de publier un,je voudrais me lancer dans projet dans une semaine et la jessai de faire mon serpent avan de commencer le MASTERMIND;merci kan mém pour le tuto jle ve bien pour bien maitriser le SDL. 


Cette discussion est classée dans : ke, graphique, mode, sdl, mastermind


Répondre à ce message

Sujets en rapport avec ce message

DEV-C++/ affichage de texte en mode graphique [ par FLASH92 ] Bonjour mesdames, messieurs,Mon problème actuellement est que je ne peux pas afficher un texte quelconque en couleur et avec une police bien défini su DEV-C++/ affichage de texte en mode graphique [ par FLASH92 ] Bonjour mesdames, messieurs,Mon problème actuellement est que je ne peux pas afficher un texte quelconque en couleur et avec une police bien défini su Texte & SDL en mode Video [ par Gaelle ] Bonjour à tous,Je suis en train d'interfacer une application C à l'aide de SDL. Pour ce qui est de la gestion vidéo et évènements souris aucun problèm "winbgim.h" et le mode graphique sous DEV C 4 !!!! [ par eldered ] Salut g plusieurs questions !1. Ou peut on trouver la librairie graphique : "winbgim.h" ?2. Ou puis connaître toutes les fonctions utilisables avec ce Mode graphique VGA [ par Trillian ] Trillian :J'arrive a activé le mode VGA par le mode 13h,Maintenant je suis bloqué au niveau de l'affichage des pixels : le compileur n'accepte pas le Affichage en mode graphique [ par KikiFrancky ] Bonjour...qq1 pourrait me dire comment mettre du texte ds une fenetre graphik plz? (pas de boite de dialogue).Je développe en C sous VC++ 6.Merci saisir des chiffre en graphique [ par sparetime ] saluten mode texte ,pour saisir des entiers entrés à partir du clavier je faisgotoxy( , );//et le curseur se place à l'endroit spécifié de l'écran et defiler ecran avec c++ en mode graphique [ par sajaris ] Bonjour,je debute un peu en c++ (surtout en programmation graphique).j'essai de faire defiler l'ecran verticalement ou horizontalement.J'ai beau tourn Librairie graphique et controle... [ par frednet01 ] J'ai un projet personnelle, qui consisterais a déplacer des images (des pions) sur une autre image (une carte) avec différent effet graphique ( smog, debutant : mode graphique ? [ par smilandfly ] Bonjour a tousJe debute en c++.Je veins de programmer un awale et j'aimerai pouvoir le mettre en mode graphique.Il y a l'air d'avoir plusieur facon de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales