Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1649 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Déplacement de plusieurs sprites à l'écran (SDL)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Déplacement de plusieurs sprites à l'écran (SDL)

n°1956263
mahery
Posté le 08-01-2010 à 18:51:26  profilanswer
 

Bonjour à tous,  
je débute en C et j'essaie de créer un programme où l'on peut déplacer plusieurs sprites à l'écran, par cases de 40px.  
Le problème est que la fonction qui gère le déplacement fonctionne très bien pour le premier, mais le deuxième sprite refuse désespérément de bouger.

Code :
  1. int game(ecran)
  2. {
  3. SDL_Surface *perso2 = NULL;
  4. SDL_Rect pos2;
  5. SDL_Surface *perso = NULL;
  6. SDL_Rect pos;
  7. int i, j;
  8. int continuer = 1;
  9. SDL_Event event;
  10. SDL_Rect position, position2;
  11. perso = IMG_Load("mur.jpg" );
  12. perso2 = IMG_Load("robot.gif" );
  13. err = IMG_Load("err2.jpg" );
  14. pos.x = 0;
  15. pos.y = 0;
  16. pos2.x = 300;
  17. pos2.y = 300;
  18. SDL_BlitSurface(perso, NULL, ecran, &pos);
  19. SDL_BlitSurface(perso2, NULL, ecran, &pos2);
  20. SDL_EnableKeyRepeat(100, 100);
  21. while(continuer)
  22. {
  23.  SDL_WaitEvent(&event);
  24.  switch(event.type)
  25.  {
  26.  case SDL_QUIT:
  27.   continuer = 0;
  28.   break;
  29.  case SDL_KEYDOWN:
  30.   switch(event.key.keysym.sym)
  31.   {
  32.   case SDLK_UP:
  33.    pos2.y++;
  34.    break;
  35.   case SDLK_DOWN:
  36.    pos2.y--;
  37.    break;
  38.   case SDLK_RIGHT:
  39.    pos2.x++;
  40.    break;
  41.   case SDLK_LEFT:
  42.    pos2.x--;
  43.    break;
  44.   case SDLK_KP8:
  45.    pos.y--;
  46.    break;
  47.   case SDLK_KP2:
  48.    pos.y++;
  49.    break;
  50.   case SDLK_KP6:
  51.    pos.x++;
  52.    break;
  53.   case SDLK_KP4:
  54.    pos.x--;
  55.    break;
  56.   }
  57.  }
  58.  position.x = pos.x * BLOC;
  59.  position.y = pos.y * BLOC;
  60.  position2.x = pos2.x * BLOC;
  61.  position2.y = pos2.y * BLOC;
  62.  SDL_BlitSurface(perso2, NULL, ecran, &position2);
  63.  SDL_BlitSurface(perso, NULL, ecran, &position);
  64.  SDL_Flip(ecran);
  65. }
  66. SDL_EnableKeyRepeat (0, 0);
  67. }


Mais où est le problème ?   :??:


Message édité par mahery le 08-01-2010 à 19:04:23
mood
Publicité
Posté le 08-01-2010 à 18:51:26  profilanswer
 

n°1956274
tpierron
Posté le 08-01-2010 à 19:48:25  profilanswer
 

Ça vaut quoi BLOC ? Si c'est 40, il n'y aurait pas des chances pour que position2 soit hors écran (parce que 300 * 40 = 12000).

n°1956284
mahery
Posté le 08-01-2010 à 20:08:25  profilanswer
 

tpierron a écrit :

Ça vaut quoi BLOC ? Si c'est 40, il n'y aurait pas des chances pour que position2 soit hors écran (parce que 300 * 40 = 12000).


En effet ça fait 40.
Mais après compilation le sprite s'affiche bien à (300;300).
En fait position2 n'est pas hors écran mais tout simplement ne varie pas.  :??:  

n°1956287
tpierron
Posté le 08-01-2010 à 20:22:27  profilanswer
 

mahery a écrit :


En effet ça fait 40.
Mais après compilation le sprite s'affiche bien à (300;300).
En fait position2 n'est pas hors écran mais tout simplement ne varie pas.  :??:  


 
Bah ouais, parce qu'avant la boucle de gestion des événements tu positionnes ton image perso2 à 300x300.

n°1956289
mahery
Posté le 08-01-2010 à 20:31:06  profilanswer
 

Oui mais quand j'utilise les flèches pour bouger le sprite il reste immobile; dans ce cas là il devrait disparaitre.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Déplacement de plusieurs sprites à l'écran (SDL)

 

Sujets relatifs
Concaténer plusieurs variables dans une seule avec séparateur?Déplacement caméra sur les 3 axes avec Sandy3D
[PHP/MYSQL] Impossible de faire plusieurs updateDetecter s'il ya un changement dans l'ecran
Streaming video de l'ecranouvrir une page html en plein écran avec flash
remplissage de plusieurs fichiers XML depuis un fichier XLSExécution de plusieurs .sql dans un .bat
[Résolu] Exécution de plusieurs SQL dans un .bat Une instance de classe métier pour plusieurs forms
Plus de sujets relatifs à : Déplacement de plusieurs sprites à l'écran (SDL)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR