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