작은 걸음 II — 만들며 배우기
마우스 버튼에 반응하기
마우스 버튼에 반응하기
이번에 배울 것
마우스의 위치와 버튼 상태는 별개입니다. 둘을 함께 읽으면 클릭한 곳에서 행동할 수 있습니다.
실행해 보기
예제 · example2.cpp
void small_main()
{
Window window;
window.open(640, 480);
while (window.is_open())
{
window.clear(White);
if (window.mouse_down(MouseButton::Left))
window.fill_circle(window.mouse_x(), window.mouse_y(), 30, Blue);
else
window.draw_circle(window.mouse_x(), window.mouse_y(), 30, Black);
window.show();
}
}
mouse_down(MouseButton::Left)은 왼쪽 버튼을 누르고 있는지 묻습니다. 누르는 동안 파란 원, 떼면 검은 테두리를 그립니다.
mouse_pressed는 누른 순간, mouse_released는 뗀 순간입니다. 위치를 한 번 기억하려면 Pressed를 사용할 수 있습니다.
Exercise — 두 버튼 두 색
왼쪽 버튼을 누르면 마우스 위치에 Red 원, 오른쪽 버튼을 누르면 Blue 원을 표시하세요.
연습 문제 코드 · exercise2_starter.cpp
void small_main()
{
Window window;
window.open(640, 480);
while (window.is_open())
{
window.clear(White);
// Left = red, Right = blue.
window.show();
}
}
Hint
Left와 Right에 대해 각각 mouse_down을 검사하면 됩니다.
풀이 보기
void small_main()
{
Window window;
window.open(640, 480);
while (window.is_open())
{
window.clear(White);
if (window.mouse_down(MouseButton::Left))
window.fill_circle(window.mouse_x(), window.mouse_y(), 30, Red);
if (window.mouse_down(MouseButton::Right))
window.fill_circle(window.mouse_x(), window.mouse_y(), 30, Blue);
window.show();
}
}