본문 바로가기

카테고리 없음

2-7. Snake VBA 키보드 입력 받기

 키보드 입력을 받을 수 있는 코드를 짜보겠습니다. 이동을 하기 위해 매번 매크로 창을 열어서 명령을 할 수 없으므로, 키 입력시 매크로의 특정 함수를 동작시키는 코드입니다. 

 

 키 입력을 받는 명령어입니다.

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 함수가 완성이 됩니다.

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