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

evenements avec SDL

extasy89
extasy89
Niveau 6
28 mai 2005 à 20:34:14

slt a tous,

durant mon programme, je demande de taper la reponse au calcul donne en appuyant sur les touches du clavier. j´ai donc mis dans mon code:

while(1)
{
while(SDL_PollEvent(&))
{
if(event.type==SDL_KEYDOWN)
{
if ( SDL_KEYDOWN==nombre1+nombre2)
{
FSOUND_Stream_Play(1,reussi);
FSOUND_Stream_Play(2,sonsreussi);
SDL_Rect rect6;
ChargeBMP("reussi.bmp");
rect6.x=0;
rect6.y=0;
SDL_BlitSurface(firstscreen,NULL,screen,&6);
SDL_Flip(screen);
waitkey();
addition();
}
if ( SDL_KEYDOWN!=nombre1+nombre2)
{
FSOUND_Stream_Play(1,rate);
FSOUND_Stream_Play(2,sonsrate);
SDL_Rect rect7;
ChargeBMP("rate.bmp");
rect7.x=0;
rect7.y=0;
SDL_BlitSurface(firstscreen,NULL,screen,&7);
SDL_Flip(screen);
waitkey();
addition();
}}}}}

et ca marche tres bien sauf qu´il ne prend en compte que la premier touche pressée. je m´explique: si comme calcul en a 30+5, la reponse est 35 et donc on presse d´abord le 3 puis le 5 sur le clavier. seulement, des qu´on a presser sur une touche il vérifie l´égalite et fatalement 30+5 n´est pas égal à 3.

ma question est donc comment faire pour qu´il prenne en compte 2 touches

un tout grand merci d´avance

PS:j´utilise la librairie graphique SDL

merci

Lapintade
Lapintade
Niveau 30
28 mai 2005 à 21:29:25

Oula, il est bien tordu ton programme.

Tu devrais separer ce qui est gestion ( comparer le nombre) et ce qui est entree/sortie ( recuperer la touche appuyé).

Pour les test de la touche, sur ton clavier tu a que des touches de 0 a 9. Donc en suivant la logique ( tordue) de ton programme, cela ne fonctionne qu´avec des resultat entre 0 et 9.

Si tu veux gerer le fait que l´utilisateur puisse gerer des nombres composé de plus d´une touche, tu dois tester les touches, les enregistrer une par une et une fois que l´utilisateur a appuyé sur entree, tu calcul la somme de tout ce qu´il a tapé. Ensuite tu peux comparer avec ce que tu attends.

Lapintade
Lapintade
Niveau 30
28 mai 2005 à 21:29:40

( mais rien dans la SDL ne fera ca automatiquement je pense)

extasy89
extasy89
Niveau 6
29 mai 2005 à 16:44:07

ok je vois tout a fait ce que tu veux dire quant au fait de comparer mais je ne vois pas comment stocker la valeur des touches

Neofungamer
Neofungamer
Niveau 22
29 mai 2005 à 17:41:29

tu cases quelques variables global un peu partout je sais pas trop comment sdl fonctionne mais ca doit etre ca

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