Bonjour,
j'essaie depuis ce soir de faire un petit système qui permet de faire une sélection ( comme window ) en sfml sauf que il se trouve que mon carré ne s'affiche uniquement quand je lâche la souris, alors que je voudrais qu'il l'affiche quand je bouge la souris en maintenant le clique gauche enfoncé. En espérant que vous pourrez m'aider :
main.cpp
En espérant que vous pourrez m'aider, cordialement Spiritus44.
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 #include <cstdlib> #include <iostream> #include <SFML/Graphics.hpp> #include <unistd.h> #include <list> using namespace sf; using namespace std; #include <SFML/Graphics.hpp> int main() { sf::RenderWindow window(sf::VideoMode(500, 500), "Test 1 "); sf::RectangleShape rectangle; int posOriginelSelectX = 0, posOriginelSelectY = 0, postempX =-1, postempY = -1, firstClick = 1; while (window.isOpen()) { window.clear(sf::Color::Black); sf::Event event; while (window.pollEvent(event)) { Mouse::Button button = event.mouseButton.button; if (event.type == sf::Event::Closed) { window.close(); } int coordSourisX(event.mouseButton.x); int coordSourisY(event.mouseButton.y); if (event.type == sf::Event::MouseButtonPressed) { if (button == Mouse::Left) { posOriginelSelectX = coordSourisX; posOriginelSelectY = coordSourisY; rectangle.setSize(sf::Vector2f(0, 0)); } } if (event.type == sf::Event::MouseButtonReleased) { if (button == Mouse::Left) { postempX = coordSourisX; postempY = coordSourisY; } } } rectangle.setSize(sf::Vector2f(10, 10)); rectangle.setFillColor(sf::Color::Blue); rectangle.setPosition(posOriginelSelectX, posOriginelSelectY); rectangle.setSize(sf::Vector2f(postempX-posOriginelSelectX, postempY-posOriginelSelectY)); window.draw(rectangle); window.display(); window.setFramerateLimit(50); } return 0; }
Partager