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

Blitter pls fois ?

Aoshira-
Aoshira-
Niveau 8
06 mai 2014 à 19:34:51

Je fais en ce moment du c avec la SDL et je reste bloqué depuis pas mal de temps à un même en endroit:

En effet si je prend par exemple 2 images(image 1 et image 2) et que je j'ai une surface , par exemple SDL_Surface positiontest
je pose image 1:
SDL_BlitSurface(image1,NULL,ecran,&positiontest);

Ensuite je change les coordonnées de la surface et je met l'image 2:

SDL_BlitSurface(image2,NULL,ecran,&positiontest);

Et là , seule la deuxième image apparait,mais pourquoi?
Merci d'avance pour votre aide.

godrik
godrik
Niveau 30
06 mai 2014 à 19:48:16

donne un code complet (et sur un wall comme http://wall.deblan.org )

Athuro83
Athuro83
Niveau 10
06 mai 2014 à 20:22:30

Heu déjà si tu mets tes coordonnées dans un SDL_Surface ça va moins bien marcher !
C'est normalement un SDL_Rect que l'on fournit à SDL_BlitSurface pour lui dire où blitter la surface.

Aoshira-
Aoshira-
Niveau 8
06 mai 2014 à 21:03:23

oui SDL_Rect je voulais dire :rouge:
https://wall.deblan.org/x1acd/c/1/

godrik
godrik
Niveau 30
06 mai 2014 à 21:24:39

je me doutais d'un truc comme ca. Le probleme est dans ton switch/case. pour "sortir" d'un cas, il faut faire "break;" sinon le code continue au cas d'apres.

tu veux probablement
switch(carre[i][j])
{
case PIONBLANC:
SDL_BlitSurface(pionblanc,NULL,ecran,&positiontest
);

break;
case PIONNOIR:
SDL_BlitSurface(pionnoir,NULL,ecran,&positiontest)
;

break;
}

Aoshira-
Aoshira-
Niveau 8
06 mai 2014 à 21:33:05

Je ne peux pas le tester pour le moment mais tu est sûr que cela permet de mettre les 2 images :question: ?

Parce que là je pense que dès qu'une condition est validée , on sort de la boucle donc seule une image apparaît , or je veux que les 2 images apparaissent ...

J'ai oublié de précisé, mais je pense que tu l'avait deviné que PIONNOIR et PIONBLANC sont des valeurs venant d'un enum

godrik
godrik
Niveau 30
06 mai 2014 à 21:40:20

oui, le probleme est que sans le break, si carre[i][j] est PIONBLANC, il execute

SDL_BlitSurface(pionblanc,NULL,ecran,&positiontest
);

puis immediatement:
SDL_BlitSurface(pionnoir,NULL,ecran,&positiontest)
;

Et donc le pion noir "ecrase" le pion blanc.

Regarde comment switch case fonction en C.
http://www.cprogramming.com/tutorial/lesson5.html

Aoshira-
Aoshira-
Niveau 8
06 mai 2014 à 21:45:23

Merci beaucoup pour ton aide :) je vais allez lire ce cours

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