작은 걸음 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();
}
}