오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
VBA 프로젝트 강의

[엑셀마리오게임] 마리오 점프 명령문

오빠두엑셀 by 오빠두엑셀
  • 학습시간 15분
  • 난이도 전문가
  • 작성일 2019.03.24

마리오 점프 동작 출력하기! (DoEvents 함수 응용)

이 강의에서는 엑셀 VBA 마리오 게임 만들기 시리즈의 마지막 단계로, 마리오가 위쪽 방향키 입력에 반응해 점프하는 동작을 구현하는 방법을 다룹니다. For 문 기반의 Lazy 지연 함수로 동작 속도를 정교하게 제어하고, KeyPressAPI 이벤트와 효과음 재생까지 연결해 마리오 벽돌깨기 게임을 완성하는 흐름을 정리합니다.

[엑셀마리오게임] 마리오 점프 명령문
DOWNLOADS

실습자료를 준비했어요

수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇

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 마리오 게임 테스트

댓글 2
5 (1개 평가)
강민준🤗
강민준🤗 2024.08.09 11:14
좋은 강의 감사합니다🙇‍♂️