엑셀 VBA 마리오 게임 만들기 완성 [8/8] :: 마리오 점프 명령문

엑셀 마리오 게임 만들기의 마지막 강의, 마리오 점프 동작 구현을 위한 명령문을 작성합니다.

# VBA

작성자 :
오빠두엑셀
최종 수정일 : 2022. 11. 02. 03:56
URL 복사
메모 남기기 : (2)

엑셀 마리오 게임 점프 명령문 만들기 :: 오빠두 엑셀 VBA 강의 3-8

예제파일(압축) 무료E-Book
첨부파일에 이상이 생겼을 경우, 1:1 문의하기로 연락주시면 신속히 해결해드리겠습니다. 

1. 엑셀 VBA 마리오 게임에 사용된 변수와 함수

이번 강의는 엑셀 VBA 마리오 벽돌깨기 게임 만들기의 마지막 강의입니다. 게임 만들기에 사용된 변수 및 보조 명령문에 대한 자세한 설명 이전 강의를 참고해주세요.

2. 명령문 동작 지연 함수 만들기 (Lazy 함수)

엑셀 VBA에서는 Wait 또는 Sleep 함수로 명령문 동작을 지연시킬 수 있습니다. 하지만, Wait 함수는 최소 1초 단위로만 지연 가능하다는 점, Sleep 함수는 Reference를 추가해야 한다는 점이 있어 사용자 편의성이나 보다 정교한 단위로 지연문을 작성하기 위해서 아래와 같이 For문을 사용하여 Lazy 함수를 작성할 수 있습니다.

// Lazy 지연함수 작성
 
Sub lazy(Optional lazyTime As Long = 500)
 
Dim i As Long
 
For i = 1 To lazyTime
    DoEvents
Next i
 
End Sub

3. 마리오 그림 출력 명령문 만들기

Boolean 형식으로 지정한 Facing 변수의 값을 판단하여, True 일 경우 오른쪽을 바라보는 마리오 그림을, False일 경우 왼쪽을 바라보는 마리오 그림을 출력하는 명령문을 작성합니다.
이전에 만들어두었던 init 명령문, Mario_RW/LW (걷는모습), Mario_RJ/LJ (점프하는모습) 을 사용합니다. 자세한 내용은 이전강의를 참고하세요.

Sub Print_RunMario(Optional SetValue As Long = 0)
 
init pointRng
Set pointRng = pointRng.Offset(0, SetValue)
 
If Facing = True Then
    Mario_RW pointRng
Else
    Mario_LW pointRng
End If
 
End Sub
 
Sub Print_JumpMario(Optional SetValue As Long = 0)
 
init pointRng
Set pointRng = pointRng.Offset(SetValue, 0)
 
Select Case Facing
    Case True
        Mario_RJ pointRng
    Case False
        Mario_LJ pointRng
End Select
 
End Sub

4. KeyPressAPI – 위쪽 방향키 인식받기

KeyPressAPI 모듈을 사용하여 GameSheet에서 위쪽방향키가 입력될 경우 마리오 점프동작을 실행하도록 명령문을 작성합니다.
기존에 작성되어있던 GameSheet의 KeyPressWatcher_KerPressed 이벤트에서 아래의 Case 문을 추가합니다.

'// 3. 위쪽방향키
    Case 38
        If Jump = False Then
            Jump = True
            MarioJump
        End If
    Case Else

5. 마리오 점프 명령문 작성하기

위쪽 방향키가 입력될 경우 마리오가 점프하는 동작이 구현되도록 아래 명령문을 추가합니다. 마리오가 점프하는 효과음을 출력하기 위해서 해당 mp3 파일은 엑셀파일과 반드시 같은 폴더안에 위치시킵니다.

Sub MarioJump()
 
Dim a As Long
 
PlaySound ActiveWorkbook.Path & "\MarioJump.mp3"
 
For a = 1 To 5
    lazy 300
    Print_JumpMario -1
Next a
 
For a = 1 To 5
    lazy 300
    Print_JumpMario 1
Next a
 
Print_RunMario
 
Jump = False
 
End Sub

6. 게임 실행 및 테스트

게임 시트로 이동한 뒤, 작성한 코드가 잘 동작하는지 테스트 합니다.

엑셀 VBA 마리오 게임 테스트
게임 시작버튼을 눌러 작성한 명령문이 잘 동작하는지 확인합니다.

 

엑셀 VBA – 마리오 게임 만들기 프로젝트는 이번 강의를 마지막으로 종료합니다. 여러분의 큰 관심에 감사드립니다.

무작위로 벽돌을 출력하는 방법, 점수 계산 방법, SQL 연결 방법 등등의 더욱 다양하고 자세한 내용들도 이후에 준비해서 여러분께 소개해드리겠습니다.

더욱 자세한 내용은 영상강의를 참고해주세요!

5 2 투표
게시글평점
2 댓글
Inline Feedbacks
모든 댓글 보기
2
0
여러분의 생각을 댓글로 남겨주세요.x