Bonjour
J'ai un peu de mal avec la gestion des événements.
Voici un bout de code qui ne sert qu'à illustrer mon propos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 bool ok_a = false; bool ok_b = false; int z = 0; int i = 0; while (App.IsOpened()) { sf::Event Event; while (i==0) { App.GetEvent(Event); if (Event.Type == sf::Event::Closed) App.Close(); if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape)) App.Close(); if ( (Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::A)) { ok_a = true; } if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::B)) { ok_b = true; } if ((Event.Type == sf::Event::KeyReleased) || z>100000) { break; } z++; } z=0; if (ok_a == true && ok_b == false) { cerr <<"a"<<endl; } if (ok_a == false && ok_b == true) { cerr <<"b"<<endl; } if (ok_a == true && ok_b == true) { cerr <<"c"<<endl; } ok_a = false; ok_b = false; }
Quand j'appuie sur la lettre A pas de soucis cela fait ce que je demande, pareil pour B
Par contre si je clique sur A et B, j'ai bien le c qui s'affiche mais et c'est là ou le bât blesse, si je reste les touches appuyées, j'obtiendrais un joli petit a.
Et c'est bien cela que je ne comprends pas.
Dans mon esprit soit il doit voir les deux événements (les 2 touches) comme au premier appuie, soit il n'en voit aucun.
Quelqu'un peut-il me dire exactement ce qui se passe dans la récupération d'événement et comment cela est traité.
Bon ben en attendant je fais me faire un p'tit café
merci.
Partager