Membuat Game Ular Dengan Excel

Game legendaris ular pasti sudah banyak yang tahu, Game legend yang sudah ada sejak HP masih nokia monochrome jadul.

Kali ini saya akan buat tutorial sederhana step by step bagaimana membuat game ular (Snake Game) dengan menggunakan Macro VBA.

Jika ingin langsung melihat tutorialnya bisa dilihat dibawah ini:

Game ular ini dibuat dengan logika sederhana yang tidak terlalu rumit sehingga sangat mudah untuk diikuti.

Untuk memulai membuat game sederhana ini, kamu bisa memulai dengan membuka Microsoft Excel, kemudian design area game nya menjadi seperti dibawah ini

Sesuaikan kode warna sesuai dengan design yang dibuat, kode warna bisa disimpan dalam const warna. Untuk lebih jelasnya bisa dilihat di Video tutorial.

Untuk Scriptnya saya pisahkan menjadi 3 bagian, ada Mod_Engine, Mod_Stik dan Mod_Home.

Mod_Engine berisi script yang berhubungan dengan Game. dan berikut Scriptnya :

Public Const WarnaUlar As Long = 5886791
Public Const WarnaKepala As Long = 1724434
Public Const WarnaMakanan As Long = 13463000
Public Const warnaBG As Long = 13693658
Public rInc As Integer, CInc As Integer
Public Game As Boolean
Public Nilai As Long
Dim R() As Integer, C() As Integer

Sub BuatUlar()
ReDim R(2)
ReDim C(2)

R(0) = 19
R(1) = 20
R(2) = 21
C(0) = 14
C(1) = 14
C(2) = 14
rInc = -1
CInc = 0
End Sub

Sub TampilkanUlar()
For i = UBound(R) To 1 Step -1
    Cells(R(i), C(i)).Interior.Color = WarnaUlar
Next
Cells(R(0), C(0)).Interior.Color = WarnaKepala
End Sub

Sub GerakanUlar()
Skor
ekor = UBound(R)
Cells(R(ekor), C(ekor)).Interior.Color = warnaBG

'Gerakan Body
For i = ekor To 1 Step -1
    R(i) = R(i - 1)
    C(i) = C(i - 1)
Next
'gerakanKepala
R(0) = R(0) + rInc
C(0) = C(0) + CInc

If Cells(R(0), C(0)).Interior.Color = WarnaMakanan Then
    ReDim Preserve R(UBound(R) + 1)
    ReDim Preserve C(UBound(C) + 1)
    R(UBound(R)) = R(UBound(R) - 1)
    C(UBound(C)) = C(UBound(C) - 1)
    Nilai = Nilai + 1
    MunculMakanan
ElseIf Cells(R(0), C(0)).Interior.Color <> warnaBG Then
    MsgBox "GameOver"
    Game = False
    Exit Sub
End If

TampilkanUlar
End Sub

Sub Update()
If Game Then
    GerakanUlar
    Application.OnTime DateAdd("s", 1, Now), "Update"
End If
End Sub

Sub ResetGame()
Range("B2:AA28").Interior.Color = warnaBG
End Sub

Sub MunculMakanan()
Randomize
arow = Int(Rnd * 24) + 2
acol = Int(Rnd * 24) + 2
If Cells(arow, acol).Interior.Color = WarnaUlar Then
    MunculMakanan
    Exit Sub
End If
Cells(arow, acol).Interior.Color = WarnaMakanan
End Sub

Sub Skor()
Range("M30").Value = Nilai * 10
End Sub

Selanjutnya ada Mod_Stik, Module ini berisi script yang berhubungan dengan Control Game yaitu untuk menggerakan Ular nya.

Sub keBawah()
If rInc <> -1 Then
    rInc = 1
    CInc = 0
End If
    GerakanUlar
End Sub
Sub KeAtas()
If rInc <> 1 Then
    rInc = -1
    CInc = 0
End If
    GerakanUlar
End Sub
Sub keKanan()
If CInc <> -1 Then
    rInc = 0
    CInc = 1
End If
    GerakanUlar
End Sub
Sub Kekiri()
If CInc <> 1 Then
    rInc = 0
    CInc = -1
End If
    GerakanUlar
End Sub

Sub RegStik()
Application.OnKey "{UP}", "KeAtas"
Application.OnKey "{DOWN}", "keBawah"
Application.OnKey "{LEFT}", "Kekiri"
Application.OnKey "{RIGHT}", "keKanan"
End Sub

Sub unRegStik()
Application.OnKey "{UP}"
Application.OnKey "{DOWN}"
Application.OnKey "{LEFT}"
Application.OnKey "{RIGHT}"
End Sub

Terakhir ada Mod_Home, Module ini berisi script untuk tombol yang ada didalam Game yaitu tombol Start dan Tombol Reset

Sub GameStop()
Game = False
unRegStik
ResetGame
BuatUlar
TampilkanUlar
End Sub

Sub GameMulai()
ResetGame
Game = True
Nilai = 0
Skor
RegStik
BuatUlar
TampilkanUlar
MunculMakanan
Update
End Sub

Download File

Leave a Reply

Your email address will not be published. Required fields are marked *

Chat WhatsApp
WhatsApp