begin process at 2012 05 30 01:37:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

probleme d'affichage pour la creation d'un casse brike


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

probleme d'affichage pour la creation d'un casse brike

samedi 29 mai 2004 à 23:20:43 | probleme d'affichage pour la creation d'un casse brike

anek971

Bonjour a tous,
enfaite j'essaye de faire un casse-brique avec SDL en C, pour l'instant il est loin d'etre fini et n'est pas optimiser c juste un test.
La ou est mon probleme est que pour l'instant je ne peux pas deplacer la barre si la balle a du effectuer un rebond .
exemple pour l'instant quand le jeu demarre la balle par vers la gauche, dc elle doit continuer tant qu'elle ne rencontre pas d'obstacle ensuite si elle rencontre le rebord gauche ici elle se dirrige vers le rebord d'en hau ensuite elle redescend le prob est tant que la balle n'as pas fait ca je ne peux pas bouger la barre :( voici mon code :
#include <stdio.h>
#include <stdlib.h>
#include<SDl.h>
struct objet
{
SDL_Surface *image;
int x,y;
}barre,brique1,brique2,brique3,balle;
SDL_Surface *screen;
int InitImage()
{
barre.image=SDL_LoadBMP("raquette.bmp");
balle.image=SDL_LoadBMP("balle.bmp");
}
void DrawIMG(struct objet*obj)
{
SDL_Rect dest;
dest.x=obj->x;
dest.y=obj->y;
SDL_BlitSurface((*obj).image,NULL,screen,&dest);
}
void DrawScene()
{
DrawIMG(&barre);
DrawIMG(&balle);
SDL_Flip(screen);
}
/*fonction qui s'oocupe des evenement lié au clavier pour le deplacement de la barre*/
static void deplacement(struct objet *obj)
{
Uint8* keys;
keys = SDL_GetKeyState(NULL);
if ( keys[SDLK_LEFT] ) { if(barre.x>10)barre.x=barre.x-4; }
if ( keys[SDLK_RIGHT] ) { if(barre.x<500)barre.x=barre.x+4;}
DrawScene();
}
/*si la balle touche un rebord du jeu */
void rebord(struct objet *ball)
{
if(ball->x<10)
{
while(1)
{
ball->x++;
ball->y--;
DrawScene();
if(ball->y<10)
{break;}
}
}
if(ball->y<10)
{
while(1)
{
ball->x++;
ball->y++;
DrawScene();
if(ball->y>430)
{break;}
}
}
}
si la balle touche le coté droit*/
void contactdroit(struct objet *obj,struct objet *ball)
{
while(1)
{
ball->x++;
ball->y--;
DrawScene();
if(ball->x>600)
{ rebord(&balle);break;}
}
}
/*si elle touche le coté gauche*/
void contactgauche(struct objet *obj,struct objet *ball)
{
while(1)
{
ball->x--;
ball->y--;
DrawScene();
if(ball->x<10)
{ rebord(&balle);break;}
}
}

/*si la balle touche la barre (elle n'est pas totalement exact*/
void position(struct objet*obj,struct objet *ball)
{

if((balle.x-barre.x<=50)||(balle.x-barre.x<=50))
{if(barre.y-balle.y<=24)
contactgauche(&barre,&balle);}
if((balle.x-barre.x>=50)&&(balle.x-barre.x<=70))
{ if(barre.y-balle.y<=24)
contactdroit(&barre,&balle);
}
}

int main(int argc, char *argv[])
{
barre.x=260;
barre.y=450;
balle.x=300;
balle.y=426;

Uint8* keys;

if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 )
{
printf("Unable to init SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);

screen=SDL_SetVideoMode(640,480,32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN);
if ( screen == NULL )
{
printf("Unable to set 640x480 video: %s\n", SDL_GetError());
exit(1);
}

InitImage();
/* DrawBG();*/

int done=0;

while(done == 0)
{
SDL_Event event;

while ( SDL_PollEvent(&event) )
{
if ( event.type == SDL_QUIT ) { done = 1; }

if ( event.type == SDL_KEYDOWN )
{
if ( event.key.keysym.sym == SDLK_ESCAPE ) { done = 1; }
}
}
while(1)
{

deplacement(&barre);
DrawScene();
position(&barre,&balle);
DrawScene();
/* deplacement(&barre);*/
/*rebord(&balle);*/
/*deplacement(&barre);*/
DrawScene();
if(balle.x>500)break;/*si la balle est plus loin ke le bord de l'ecran*/
}
}
return 0;

}


Cette discussion est classée dans : barre, sdl, balle, struct, ball


Répondre à ce message

Sujets en rapport avec ce message

jeu SDL [ par uzixucf ] bonjour tout le monde, je suis nouveau d'entre vousje suis entrain de developper un jeu en SDL (language C)  qui se présente ainsi                     problème avec SDL, struct? [ par foxley ] Bonjour, je suis nouveau ici.J'ai un projet en C à faire pour la fac.Et à vrai dire je suis bloqué a un endroit:"tab[i]->surface->w" afin de récuperer PILE & STRUCTURE [ par cyberice67 ] Bonjour, J'ai une bonne question spécial chauffage de neurones.... J'ai créé une structure de base appelée MesDonnees, qui contient mes données. Puis barre de défilement [ par tyra36 ] salut a tous!!je n'arrive pas à faire que la fenetre principal de mon MFC ai une scrollbar vertical.. quelqu'un pourrai m'aider?Merci [dev-cpp] fenêtres et barre des tâches [ par zippro4012 ] Comment savoir si une fenêtre est visible dans la barre des tâches ? (connaissant son handle)IsWindowVisible indique si une fenêtre est visible dans l La barre des taches non merci... [ par victorcoasne ] Bonjour, Je voudrais ne pas afficher mon programme dans la barre des taches ( CreateWindowEx ). Je suis sous Dev-C++ alors pas d'assembleur. Merci probleme de compilation SDL [ par darmoor ] Je suis dsl , le sujet doit etre souvent demandé mais j'ai deja cherché sur google et j'ai pas encore trouvé ce qu'il faut. Bon alors j'ai commencé a Barre d'outils dans le menu démarrer [ par elflink ] oyé mes amis !Ma question se porte sur le menu démarrer, plus précisement sur ce qu'on peut y mettre : comment créer une barre d'outils dans le menu d Au sujet des barres d'outils dans la barre de tache [ par elflink ] Bonjour a tous, Pensez-vous possible la création dune barre d'outils a la maniere de celle du Windows media player ?  Pourriez-vous m'indiquer la marc PB compilation de socket [ par dhylde ] Bonjour a tous, j'ai un petit souci de compilation (j'ai du manqué l'inclusion d'une Librairy). Bref je me prend la tete depuis ce matin. Je suis sous


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 1,498 sec (3)

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