작은 걸음 II — 만들며 배우기

키를 누르는 동안 움직이기

키를 누르는 동안 움직이기

이번에 배울 것

키 입력 상태는 지금 어떤 키가 눌려 있는지 알려 줍니다. key_down은 키를 누르고 있는 동안 참입니다.

실행해 보기

예제 · example1.cpp
void small_main()
{
    Window window;
    window.open(640, 480);

    double x = 320;
    double y = 240;

    while (window.is_open())
    {
        if (window.key_down(Key::Left))
            x = x - 2;
        if (window.key_down(Key::Right))
            x = x + 2;
        if (window.key_down(Key::Up))
            y = y - 2;
        if (window.key_down(Key::Down))
            y = y + 2;

        window.clear(Black);
        window.fill_circle(x, y, 20, Yellow);
        window.show();
    }
}

방향키로 x와 y를 바꾸고 그 위치에 원을 다시 그립니다. 한 번의 반복에서 만든 화면을 프레임이라고 합니다.

Key::Left는 왼쪽 방향키를 가리키는 이름입니다. 왼쪽·오른쪽 키를 길게 눌러 원이 계속 움직이는지 보세요.

Exercise — WASD로 움직이기

방향키 대신 W, A, S, D를 사용해 원을 위, 왼쪽, 아래, 오른쪽으로 움직이세요.

연습 문제 코드 · exercise1_starter.cpp
void small_main()
{
    Window window;
    window.open(640, 480);

    double x = 320;
    double y = 240;

    while (window.is_open())
    {
        // Move with W, A, S, D.

        window.clear(Black);
        window.fill_circle(x, y, 20, Cyan);
        window.show();
    }
}

Hint

문자 키는 window.key_down('W')처럼 확인할 수 있습니다.

풀이 보기
void small_main()
{
    Window window;
    window.open(640, 480);

    double x = 320;
    double y = 240;

    while (window.is_open())
    {
        if (window.key_down('A')) x = x - 2;
        if (window.key_down('D')) x = x + 2;
        if (window.key_down('W')) y = y - 2;
        if (window.key_down('S')) y = y + 2;

        window.clear(Black);
        window.fill_circle(x, y, 20, Cyan);
        window.show();
    }
}
← 이전 레슨다음 레슨 →