키보드 입력을 받을 수 있는 코드를 짜보겠습니다. 이동을 하기 위해 매번 매크로 창을 열어서 명령을 할 수 없으므로, 키 입력시 매크로의 특정 함수를 동작시키는 코드입니다.
키 입력을 받는 명령어입니다.
Application.OnKey "{left}", "left"
{left}라는 키 입력을 받았을 때, left 함수를 실행한다는 의미입니다.
Application.OnKey "{left}"
위 명령어를 입력하게 되면, left 버튼을 눌렀을때, 원래 해당 키의 기능이 되돌아오게 됩니다.
키 입력을 받았을때 뱀이 움직이는 것이 아니라 일정 시간 후에 뱀이 자동으로 움직여야 합니다. 그러므로 키 입력을 주었을때 뱀이 움직이는 함수를 작동 시키는 것이 아니라 어느 방향으로 움직여야 되는지 알려주는 코드를 작동시켜야 합니다. 기존의 Left Right Up Down 함수와 다르게 Left_key Right_key Up_key Down_key 함수를 새로 만들겠습니다.
Sub Left_key()
Cells(10, 27) = "L"
End Sub
Sub Right_key()
Cells(10, 27) = "R"
End Sub
Sub Up_key()
Cells(10, 27) = "U"
End Sub
Sub Down_key()
Cells(10, 27) = "D"
End Sub
함수는 위와 같이 만들었습니다.
이제 main 함수를 만들어서 키 입력을 받을 수 있게 만들어 보겠습니다.
main 함수를 실행하면 우선, 게임판을 초기화 할 수 있게 reset으로 시작을 하고
키 입력을 받는 부분을 만들어 줍니다.
다음 글에서 일정 시간 후 자동으로 움직임을 수행하는 코드를 만들어 볼 건데, 그 부분도 추가를 하면 main 함수가 완성이 됩니다.
Sub main()
reset
Application.OnKey "{left}", "Left_key"
Application.OnKey "{right}", "Right_key"
Application.OnKey "{up}", "Up_key"
Application.OnKey "{down}", "Down_key"
' 타이머 함수 추가 예정
End Sub