bonjour, on m'a conseillé de mettre un nouveau post pour avoir de l'aide!!!
voila mon probleme,
je viens de programmer le jeu du mémory, mais en langage c, donc l'affichage se fait sur la console de windows, maintenant j'aurai voulu y apporter quelques améliorations... c'est a dire de creer un nouvelle affichage pour rendre le jeu plus attrayant, pour cela je veux utiliser la SDL, j'ai déja creer mon fond de départ, avec une grille de 6X6 de cartes retournées, aisnsi que la gestion du curseur par le clavier, mais aprés je bloque, je ne sais pas comment faire le lien entre le programme en langage c qui représente le jeu, et la sdl qui repérsente l'aficchage? quelquun pourrait-il m'aider? merci d'avance pour vos réponse!!! je post mes codes
/*code affichage par la SDL!!!!!*//* declaration des bibliothéques*/
#include<SDL/SDL.h>
#include<stdlib.h>
#include<stdio.h>
#include <time.h>
/* declaration des variables*/
SDL_Rect dest;
SDL_Surface *ecran;
SDL_Surface *fond;
SDL_Surface *curseur;
SDL_Rect positioncurseur;
SDL_Event event;
int continuer = 1;
int x,y;
/* ddebut prog*/
/* affichage grille*/
void affichage_cartes_dos()
{
for(y=0;y<6;y++){
for(x=0;x<6;x++){
dest.x=152*x;
dest.y=112*y;
SDL_BlitSurface(fond,NULL,ecran,&dest);
}
}
SDL_UpdateRect(ecran,0,0,0,0);
}
/* initialisation SDL*/
void initSDL()
{
///////////////////intialisation//////////////////////
if (SDL_Init(SDL_INIT_VIDEO)<0)
{
printf("erreur initiallisation SDL: %s",SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
ecran = SDL_SetVideoMode (900,800,24,SDL_SWSURFACE |SDL_DOUBLEBUF);
if (ecran==NULL)
{
printf("erreur initiallisation ecran: %s",SDL_GetError());
exit(2);
}
}
/* chargement images*/
void chargementimages()
{
fond=SDL_LoadBMP("carte_dos.bmp");
curseur=SDL_LoadBMP("curseur.bmp");
}
/* gestion deplacement curseur*/
int curseurdep()
{
int i,j;
positioncurseur.x = 112;
positioncurseur.y = 72;
SDL_SetColorKey(curseur, SDL_SRCCOLORKEY, SDL_MapRGB(curseur->format, 0, 0, 0));
/* Transparence Alpha moyenne (128) : */
SDL_SetAlpha(curseur, SDL_SRCALPHA, 255);
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym)
{
case SDLK_UP: // Flèche haut
positioncurseur.y=positioncurseur.y-112;
break;
case SDLK_DOWN: // Flèche bas
positioncurseur.y=positioncurseur.y+112;
break;
case SDLK_RIGHT: // Flèche droite
positioncurseur.x=positioncurseur.x+152;
break;
case SDLK_LEFT: // Flèche gauche
positioncurseur.x=positioncurseur.x-152;
break;
case SDLK_ESCAPE: /* Appui sur la touche Echap, on arrête le programme */
continuer = 0;
break;
}
}
if (positioncurseur.x==0)
{
positioncurseur.x=872;
}
if (positioncurseur.x>=880)
{
positioncurseur.x=112;
}
if (positioncurseur.y==0)
{
positioncurseur.y=632;
}
if (positioncurseur.y>=672)
{
positioncurseur.y=72;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
affichage_cartes_dos();
SDL_BlitSurface(curseur, NULL, ecran, &positioncurseur);
SDL_Flip(ecran);
SDL_UpdateRect(ecran,0,0,0,0);
}
return (positioncurseur.x,positioncurseur.y);
}
/* là normalement j'aurai du implanter une fonction qui représenterai le fonctionnement du jeu, que j'ai fait grâce à mon programe en langage C, mai je ne vois pas comment faire!!! d'ou mon post :) */
int main(int argc, char *argv[])
{
initSDL();
chargementimages();
curseurdep();
return 0;
}