Game Snake: Permainan ular yang memakan makanan dengan visual basic 6

 


Membuat game Snake di Visual Basic 6 memerlukan pengaturan grid, kontrol ular yang bergerak, dan makanan yang diacak. Berikut adalah langkah-langkah membuatnya:

1. Membuat Proyek Baru

  1. Buka Visual Basic 6, buat proyek baru dengan template Standard EXE.
  2. Tambahkan komponen berikut ke form:
    • PictureBox untuk area bermain → picGame
    • Timer untuk mengatur kecepatan permainan → tmrGame
    • Label untuk menampilkan skor → lblScore
    • Button untuk memulai ulang → btnStart

2. Desain Form

  • Atur ukuran form untuk area bermain (misalnya, 400x400 piksel untuk picGame).
  • Tetapkan properti berikut:
    • tmrGame.Interval = 200 (atur kecepatan awal).
    • picGame.BorderStyle = 1 (agar memiliki batas).

3. Kode Program

Berikut adalah kode untuk logika permainan:

Option Explicit

' Variabel global
Dim snake() As PictureBox ' Array untuk bagian tubuh ular
Dim direction As String ' Arah pergerakan ("Up", "Down", "Left", "Right")
Dim food As PictureBox ' Objek makanan
Dim score As Integer ' Skor permainan

Private Sub Form_Load()
'Set txtBox = Form1.Controls.Add("vB.Textbox", "txtTextBox")
' Inisialisasi awal
ReDim snake(0) ' Ular diawali dengan satu bagian
Set snake(0) = CreateSnakePart(100, 100) ' Bagian pertama ular
direction = "Right" ' Arah awal
score = 0
lblScore.Caption = "Score: " & score

' Buat makanan
Set food = CreateFood()
End Sub

Private Function CreateSnakePart(x As Integer, y As Integer) As PictureBox
' Membuat bagian tubuh ular
Dim part As VB.PictureBox ' PictureBox
Set part = Me.Controls.Add("VB.PictureBox", "SnakePart" & UBound(snake))

With part
.Width = picTemplate.Width
.Height = picTemplate.Height
.BackColor = vbGreen
.Left = x
.Top = y
.Visible = True
End With
Set CreateSnakePart = part
End Function

Private Function CreateFood() As PictureBox
' Membuat makanan di posisi acak
Randomize Timer
Dim f As PictureBox
Set f = Controls.Add("VB.PictureBox", "Food")
With f
.Width = picTemplate.Width
.Height = picTemplate.Height
.BackColor = vbRed
.Left = GetRandomNumber(1000, 5000) 'Int((picGame.ScaleWidth - .Width) * Rnd / 20) * 20
.Top = GetRandomNumber(500, 2500) 'Int((picGame.ScaleHeight - .Height) * Rnd / 20) * 20
.Visible = True
End With
Set CreateFood = f
End Function

Function GetRandomNumber(Minimum As Integer, Maksimum As Integer) As Integer
GetRandomNumber = Int((Maksimum - Minimum + 1) * Rnd) + Minimum
End Function

Private Sub tmrGame_Timer()
' Menggerakkan ular
Dim i As Integer
Dim nextX As Integer, nextY As Integer

' Tentukan posisi berikutnya kepala ular
nextX = snake(0).Left
nextY = snake(0).Top
Select Case direction
Case "Up": nextY = nextY - 100
Case "Down": nextY = nextY + 100
Case "Left": nextX = nextX - 100
Case "Right": nextX = nextX + 100
End Select

' Periksa apakah ular menabrak dinding atau dirinya sendiri
If nextX < 0 Or nextY < 0 Or nextX >= Me.Width Or nextY >= Me.Height Then
GameOver
Exit Sub
End If
For i = 1 To UBound(snake)
If snake(i).Left = nextX And snake(i).Top = nextY Then
GameOver
Exit Sub
End If
Next i

' Periksa apakah ular memakan makanan
If Tabrakan(food.Left, food.Top, nextX, nextY) Then
score = score + 10
lblScore.Caption = "Score: " & score
' Tambahkan bagian tubuh baru
ReDim Preserve snake(UBound(snake) + 1)
Set snake(UBound(snake)) = CreateSnakePart(snake(UBound(snake) - 1).Left, snake(UBound(snake) - 1).Top)
' Buat makanan baru
Me.Controls.Remove food
Set food = CreateFood()
End If

' Pindahkan bagian tubuh ular
For i = UBound(snake) To 1 Step -1
snake(i).Left = snake(i - 1).Left
snake(i).Top = snake(i - 1).Top
Next i
snake(0).Left = nextX
snake(0).Top = nextY
End Sub

Private Sub GameOver()
' Mengakhiri permainan
tmrGame.Enabled = False
MsgBox "Game Over! Skor Anda: " & score
End Sub

Private Sub Mulai()
' Mulai ulang permainan
Dim i As Integer
For i = 1 To UBound(snake)
Me.Controls.Remove snake(i)
Next i
ReDim snake(0)
Set snake(0) = CreateSnakePart(100, 100)
direction = "Right"
score = 0
lblScore.Caption = "Score: " & score
Me.Controls.Remove food
Set food = CreateFood()
tmrGame.Enabled = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
' Mengatur arah berdasarkan tombol panah
Select Case KeyCode
Case vbKeyUp: If direction <> "Down" Then direction = "Up"
Case vbKeyDown: If direction <> "Up" Then direction = "Down"
Case vbKeyLeft: If direction <> "Right" Then direction = "Left"
Case vbKeyRight: If direction <> "Left" Then direction = "Right"
Case 13: Mulai
End Select
End Sub


Private Function Tabrakan(kirimakanan, atasmakanan, kiriular, atasular) As Boolean
Dim BatasKiri As Integer, BatasKanan As Integer, BatasAtas As Integer, BatasBawah As Integer
BatasAtas = atasmakanan - 5
BatasBawah = atasmakanan + food.Height + 5
BatasKiri = kirimakanan - 5
BatasKanan = kirimakanan + food.Width + 5
If kiriular + snake(0).Width >= kirimakanan And kiriular < BatasKanan Then
If atasular + snake(0).Height > BatasAtas And atasular < BatasBawah Then
Tabrakan = True
End If
End If
End Function


4. Penjelasan

  • Snake Movement: Timer menggerakkan ular berdasarkan variabel direction.
  • Food Detection: Jika posisi kepala ular sama dengan makanan, skor bertambah, tubuh ular bertambah, dan makanan diacak ulang.
  • Game Over: Ular menabrak dinding atau dirinya sendiri.

5. Menjalankan Game

  1. Tekan F5 untuk menjalankan.
  2. Gunakan tombol panah untuk menggerakkan ular.
  3. Klik Start untuk memulai ulang permainan.

Ini adalah game ular sederhana dengan Visual Basic 6. Anda dapat menyesuaikan logika atau elemen visual sesuai kebutuhan!

 

 Ps: Jika ingin mendownload sourcecode silahkan klik link berikut:

https://updown.fun/dZxG51QBGVjK/file 

 

 

 

 

Komentar

Postingan populer dari blog ini

Koneksi VB - My SQL tanpa ODBC

Membuat Game Pukul Bola Sederhana dengan Visual Basic

Visual Basic 6.0: Pengantar, Fitur, dan Kelebihannya