작은 걸음 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();
    }
}
← 이전 레슨다음 레슨 →