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