Membuat Game Ular Lagend dengan Visual Basic .0 (VB6)

Pada pertemuan kali ini Admin akan berbagi sebuah kode untuk membuat sebuah permainan Game yaitu Game Ular (Snake Game).

Game ini pernah populer di era tahun 90an dan menjadi legenda hingga sekarang. Bagi Anda yang kelahiran tahun 80an game ini udah gak asing lagi, kala itu game ini dapat disewakan dalam bentuk Game Board.

Cara bermain Game ini adalah ular bergerak mencari makanan, pergerakan di kontrol oleh kita dengan menggerakan ular ke arah makanan untuk dimakan, ular akan bertambah panjang jika berhasil memakan makanannya, jika ular ini menabrak dinding atau menabrak dirinya sendiri maka "Game Over".Kecepatan akan bertambah sesuai level, setiap level bernilai 50.

Berikut adalah screen shoot dari Game Ular :

Game Ular

Untuk membuat Game ini sangat mudah, Anda tak perlu pusing-pusing membuat kodenya cukup tinggal copy-paste dalam kode Form General-Declaration.

Sebelum anda mencopy-paste kodenya terlebih dahulu anda wajib membuat form desainnya dengan cara :
  1. Buka Form vb6 Anda
  2. Tanamkan beberapa control yaitu 2 Label dan 1 Timer (semua control tidak perlu mengatur Propertiesnya)
  3. Desain formnya seperti dibawah ini :
Desain Form

Lalu copykan kode dibawah ini di bagian General Declaration (pastikan kode dalam keadaan bersih) :

'Deklarasi variabel
Const gridSize = 20
Const maxBody = 1000

Dim snakeX(maxBody) As Integer
Dim snakeY(maxBody) As Integer
Dim snakeLength As Integer

Dim dirX As Integer
Dim dirY As Integer

Dim foodX As Integer
Dim foodY As Integer

Dim score As Integer
Dim isGameOver As Boolean

Dim level As Integer
'ketika di load dilayar
Private Sub Form_Load()
    Me.ScaleMode = vbPixels
    Me.BackColor = vbBlack
    Timer1.Interval = 100
    Form1.KeyPreview = True
    Label1.BackColor = vbBlack
    Label1.ForeColor = vbWhite
    Label2.BackColor = vbBlack
    Label2.ForeColor = vbWhite
    Call StartGame
End Sub
'inisial game
Private Sub StartGame()
    Dim i As Integer

    snakeLength = 3
    For i = 0 To snakeLength
        snakeX(i) = 20 + (snakeLength - i) * gridSize
        snakeY(i) = 20
    Next

    dirX = gridSize
    dirY = 0

    score = 0
    level = 1
    Timer1.Interval = 1500
    isGameOver = False
    
    Label1.Caption = "Score : 0"
    Label2.Caption = "Level : 1"
    Call GenerateFood
    Timer1.Enabled = True
End Sub
'membuat makanan ular
Private Sub GenerateFood()
    Randomize
    foodX = Int(Rnd * (Me.ScaleWidth \ gridSize)) * gridSize
    foodY = Int(Rnd * (Me.ScaleHeight \ gridSize)) * gridSize
End Sub
'kontrol arah pada keyboard
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case vbKeyLeft
            If dirX = 0 Then dirX = -gridSize: dirY = 0
        Case vbKeyRight
            If dirX = 0 Then dirX = gridSize: dirY = 0
        Case vbKeyUp
            If dirY = 0 Then dirY = -gridSize: dirX = 0
        Case vbKeyDown
            If dirY = 0 Then dirY = gridSize: dirX = 0
    End Select
End Sub
Private Sub Timer1_Timer()
    If isGameOver Then Exit Sub

    ' Gerakkan badan ular
    Dim i As Integer
    For i = snakeLength To 1 Step -1
        snakeX(i) = snakeX(i - 1)
        snakeY(i) = snakeY(i - 1)
    Next

    ' Kepala ular
    snakeX(0) = snakeX(0) + dirX
    snakeY(0) = snakeY(0) + dirY

    ' Cek tabrakan dengan dinding
    If snakeX(0) < 0 Or snakeY(0) < 0 Or _
       snakeX(0) >= Me.ScaleWidth Or _
       snakeY(0) >= Me.ScaleHeight Then
        Call GameOver
        Exit Sub
    End If

    ' Cek tabrakan dengan badan sendiri
    For i = 1 To snakeLength
        If snakeX(0) = snakeX(i) And snakeY(0) = snakeY(i) Then
            Call GameOver
            Exit Sub
        End If
    Next

    ' Cek makan makanan
    If snakeX(0) = foodX And snakeY(0) = foodY Then
        snakeLength = snakeLength + 1
        score = score + 10
        Label1.Caption = "Score: " & score
        
        ' Tambahkan: cek level
        Dim newLevel As Integer
        newLevel = (score \ 50) + 1
        If newLevel > level Then
        level = newLevel
        Label2.Caption = "Level: " & level

        ' Percepat timer (batas minimal 30 ms)
        If Timer1.Interval > 30 Then
            Timer1.Interval = Timer1.Interval - 10
        End If
    End If
        Call GenerateFood
    End If

    Me.Cls
    Call DrawSnake
    Call DrawFood
End Sub
Private Sub DrawSnake()
    Dim i As Integer
    For i = 0 To snakeLength
        Me.ForeColor = vbGreen
        Me.FillStyle = vbSolid
        Me.Line (snakeX(i), snakeY(i))-Step(gridSize - 1, gridSize - 1), vbGreen, BF
    Next
End Sub
Private Sub DrawFood()
    Me.ForeColor = vbRed
    Me.FillStyle = vbSolid
    Me.Line (foodX, foodY)-Step(gridSize - 1, gridSize - 1), vbRed, BF
End Sub
Private Sub GameOver()
    Timer1.Enabled = False
    isGameOver = True
    MsgBox "Game Over! Skor kamu: " & score, vbExclamation, "Ulangi"
    Call StartGame ' Untuk restart otomatis
End Sub

Simpan Project Anda, jalankan program dan selamat bermain


Membuat Game Tangkap Objek Jatuh dengan VB6

0 komentar

Kali ini Admin akan berbagi sebuah kode untuk membuat sebuah Game sederhana yaitu Game Tangkap Objek Jatuh. Dalam postingan ini Saya membuat objeknya dengan menggunakan PictureBox, Anda bisa mengisinya dengan gambar, misalnya gambar keranjang untuk bagian bawah dan gambar buah untuk objek jatuh.

Berikut adalah ilustrasi game yang sudah jadi :

Output

Berkut dibawah ini adalah komponen-komponen yang dibutuhkan dalam pembuatan Game ini :

Komponen     NamaFungsi
PictureBoxpicObjek     Objek yang jatuh
PictureBoxpicPlayer     "Keranjang" di bawah
Label               lblScore     Menampilkan skor
TimerTimer1     Untuk membuat objek jatuh




Desainlah Form seperti gambar dibawah ini :

Desain Form

Copykan kode dibawah ini di form kosong :

Dim speedY As Integer

Dim score As Integer


Private Sub Form_Load()

' Atur posisi awal objek

    Randomize

    speedY = 100

    score = 0

    lblScore.Caption = "0"

    Call ResetObjek

    Timer1.Enabled = True

    KeyPreview = True

    Timer1.Interval = 100

End Sub


Private Sub ResetObjek()

    picObjek.Top = 0

    picObjek.Left = Int(Rnd * (Me.ScaleWidth - picObjek.Width))

End Sub


Private Sub Timer1_Timer()

    picObjek.Top = picObjek.Top + speedY


    ' Cek tabrakan dengan player

    If picObjek.Top + picObjek.Height >= picPlayer.Top Then

        If picObjek.Left + picObjek.Width >= picPlayer.Left And _

           picObjek.Left <= picPlayer.Left + picPlayer.Width Then


            score = score + 1

            lblScore.Caption = score

            Form1.Caption = "Skor Anda : " & score

            Call ResetObjek

        End If

    End If


    ' Jika objek lewat bawah, ulangi lagi

    If picObjek.Top > Me.ScaleHeight Then

        Call ResetObjek

    End If

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    Const gerak As Integer = 300


    Select Case KeyCode

        Case vbKeyLeft

            If picPlayer.Left > 0 Then

                picPlayer.Left = picPlayer.Left - gerak

            End If

        Case vbKeyRight

            If picPlayer.Left + picPlayer.Width < Me.ScaleWidth Then

                picPlayer.Left = picPlayer.Left + gerak

            End If

    End Select

End Sub

Jalnkan kode program Anda


Membuat Efek Garis Pelangi Mengikuti Qursor dengan VB6

0 komentar

Kali ini Admin akan berbagi kode untuk membuat efek garis rainbow pada mouse ketika digerakan, cara kerjanya adalah dengan menggerakan mouse maka secara otomatis kemanapun mouse melagkah angkat terbentuk garis rainbow warna pelangi, untuk membuat sangat gampang cukup copy-paste kode dibawah ini :

Mouse Rainbow


' Variabel untuk menyimpan posisi terakhir mouse
Dim lastX As Single
Dim lastY As Single

Private Sub Form_Load()
    Me.AutoRedraw = True
    Me.ScaleMode = 3 ' Pixel
    Command1.Caption = "Clear"
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ' Gambar garis dari posisi sebelumnya ke posisi saat ini
    If lastX <> 0 And lastY <> 0 Then
        ' Ganti warna agar terlihat keren
        Dim warna As Long
        warna = RGB(Rnd * 255, Rnd * 255, Rnd * 255) ' Warna acak
        Me.Line (lastX, lastY)-(X, Y), warna
    End If
    
    lastX = X
    lastY = Y
End Sub

Private Sub Command1_Click()
    Me.Cls ' Hapus semua gambar di Form
    lastX = 0
    lastY = 0
End Sub

Catatan :
Jangan lupa tambahkan 1 Commannbutton pada form

Membuat Generator Kalender Dengan VB6

Kali ini Admin akan berbagi sebuah kode yang berfungsi untuk untuk meng-Generate sebuah kalender dengan bulan dan tahun yang Anda inginkan.

Dibawah ini adalah gambar hasil screenshoot kode yang sudah dijalankan :

Generator Kalende vb6

Berikut dibawah ini adalah langkah-langkah pembuatan Generator Kalender dengan menggunakan vb6 :

1. Buka Form VB6 Standar EXE

2. Tambahkan control MSFlexGrid, dengan cara :

Tekan Project >>Component atau CTRL+T , pilih Microsoft FlexGrid Control 6.0 kemudian Apply dan OK

3. Tanamkan MSFlexGrid kedalam Form dan atur lebar dan tinggi sesuai kebutuhan

4. Tambahkan 2 ComboBox dengan masing-masing sebagai berikut :

ComboBox1 dengan Name cmbTahun

ComboBox2 dengan Name cmbBulan

5. Tambahkan 1 CommandButton dengan Name cmdGenerate

6. Desainlah Form seperti Gambar dibawah ini :

Desain Form


7. Langkah terakhir adalah ketika kode dibawah ini :

Private Sub cmdGenerate_Click()
    Dim bulan As Integer, tahun As Integer
    Dim tglAwal As Date
    Dim hariAwal As Integer
    Dim jumlahHari As Integer
    Dim i As Integer
    Dim baris As Integer
    Dim kolom As Integer
    
    bulan = cmbBulan.ListIndex + 1
    tahun = Val(cmbTahun.Text)
    
    If tahun < 1 Then
        MsgBox "Tahun tidak valid!", vbExclamation
        Exit Sub
    End If
    
    ' Tanggal awal bulan
    tglAwal = DateSerial(tahun, bulan, 1)
    hariAwal = Weekday(tglAwal, vbSunday) - 1 ' 0=Sunday
    jumlahHari = Day(DateSerial(tahun, bulan + 1, 1) - 1)
    
    ' Bersihkan grid
    For baris = 1 To 6
        For kolom = 0 To 6
            grdKalender.TextMatrix(baris, kolom) = ""
        Next kolom
    Next baris
    
    ' Isi tanggal ke dalam grid
    baris = 1
    kolom = hariAwal
    For i = 1 To jumlahHari
        grdKalender.TextMatrix(baris, kolom) = i
        kolom = kolom + 1
        If kolom > 6 Then
            kolom = 0
            baris = baris + 1
        End If
    Next i
End Sub
Private Sub Form_Load()
'membuat urutan bulan
    cmbBulan.AddItem "Januari"
    cmbBulan.AddItem "Februari"
    cmbBulan.AddItem "Maret"
    cmbBulan.AddItem "April"
    cmbBulan.AddItem "Mei"
    cmbBulan.AddItem "Juni"
    cmbBulan.AddItem "Juli"
    cmbBulan.AddItem "Agustus"
    cmbBulan.AddItem "September"
    cmbBulan.AddItem "Oktober"
    cmbBulan.AddItem "November"
    cmbBulan.AddItem "Desember"
    
'membuat urutan tahun
    Dim tahunSekarang As Integer
    Dim i As Integer

    tahunSekarang = Year(Date) ' ambil tahun saat ini
    
    For i = 1980 To tahunSekarang
        cmbTahun.AddItem i
    Next i

    cmbTahun.ListIndex = cmbTahun.ListCount - 1 ' default ke tahun sekarang

'ambil urutan tahun dan bulan di combobox
    cmbBulan.ListIndex = Month(Date) - 1
    cmbTahun.Text = Year(Date)
    
    ' Siapkan Grid
    With grdKalender
        .Cols = 7
        .Rows = 7
        .FixedRows = 1
        .TextMatrix(0, 0) = "Minggu"
        .TextMatrix(0, 1) = "Senin"
        .TextMatrix(0, 2) = "Selasa"
        .TextMatrix(0, 3) = "Rabu"
        .TextMatrix(0, 4) = "Kamis"
        .TextMatrix(0, 5) = "Jumat"
        .TextMatrix(0, 6) = "Sabtu"
    End With
End Sub

Setelah mengetikan kode seperti diatas jalankan Project Anda kemudian uji dengan memilih tahun dan bulan yang Anda inginkan pada combobox dan tekan Generate, maka akan menampilkan bulan dan tahun yang Anda pilih dalam bentuk kalender.

Membuat Game Suwit dengan Visual Basic 6.0 (VB6)

0 komentar

Pada artikel kali ini Admin akan berbagi sebuah source code permainan Game Suwit, apa itu permainan Game Suwit.

Game Suwit adalah permainan klasik Batu-Gunting-Kertas di mana pemain melawan komputer.

Untuk lebih jelas bagaimana bentuk dari permainan Game Suwit,  perhatikan gambar dibawah ini :

Suwit Game

Berikut adalah langkah-langkah cara membuat Game Suwit dengan vb6 :

1. Buka Form vb6 Anda pilih Standar EXE

2. Tanamkan 2 Control PictureBox, 3 CommandButton dan beberapa Label

3. Desainlah Form seperti gambar dibawah ini :

Desain Form

4. Setelah selesai mendesain Form seperti gambar diatas simpan Form1, langkah selanjutnya adalah mendownload ketiga gambar dibawah ini dibawah ini :





5. Setelah ketiga gambar diatas di download, ubah gambar tersebut dengan file extension .BMP dengan aplikasi olah gambar seperti Paint atau Photoshop dll, misal batu.BMP, kertas.BMP dan gunting.BMP

6. Simpan ketiga Gambar diatas di satu folder yang sama dengan file Form1

7. Kemudian ketik kode dibawah ini :

Option Explicit

Dim playerChoice As Integer
Dim computerChoice As Integer
Dim playerScore As Integer
Dim computerScore As Integer

Private Function GetComputerChoice() As Integer
    Randomize
    GetComputerChoice = Int(Rnd * 3) + 1 ' 1 = Batu, 2 = Gunting, 3 = Kertas
End Function

Private Function DetermineWinner(player As Integer, computer As Integer) As String
    If player = computer Then
        DetermineWinner = "Seri!"
    ElseIf (player = 1 And computer = 2) Or _
           (player = 2 And computer = 3) Or _
           (player = 3 And computer = 1) Then
        DetermineWinner = "Kamu Menang!"
        playerScore = playerScore + 1
    Else
        DetermineWinner = "Komputer Menang!"
        computerScore = computerScore + 1
    End If
End Function

Private Sub ShowChoice(pic As PictureBox, choice As Integer)
    Select Case choice
        Case 1
            pic.Picture = LoadPicture("D:\VB6.0\FILEvb6\Suwit Game\batu.bmp") ' Ganti dengan path gambar Batu
            
        Case 2
            pic.Picture = LoadPicture("D:\VB6.0\FILEvb6\Suwit Game\gunting.bmp") ' Ganti dengan path gambar Gunting
             
        Case 3
            pic.Picture = LoadPicture("D:\VB6.0\FILEvb6\Suwit Game\kertas.bmp") ' Ganti dengan path gambar Kertas
    End Select
End Sub

Private Sub Command1_Click()
    PlayGame 1
End Sub

Private Sub Command2_Click()
    PlayGame 2
End Sub

Private Sub Command3_Click()
    PlayGame 3
End Sub

Private Sub PlayGame(choice As Integer)
    playerChoice = choice
    computerChoice = GetComputerChoice()
    
    ' Tampilkan pilihan
    ShowChoice Picture1, playerChoice
    ShowChoice Picture2, computerChoice

    ' Tentukan pemenang
    Label3.Caption = DetermineWinner(playerChoice, computerChoice)

    ' Update skor
    Label4.Caption = "User " & playerScore & " - " & computerScore & " Komputer"
End Sub

Private Sub Form_Load()
Label3.Caption = ""
Label4.Caption = ""
End Sub

8. Setelah mengetikan kode diatas coba jalankan Project Anda.

Catatan :
kode yang berwarna merah sesuaikan dengan alamat penyimpaman file gambar Anda

Cara Bermain :
Pilih tombol Anda inginkan (Gunting, Batu atau Kertas), ketika pilihan Anda di klik maka akan di tampilkan di kolom user dan kolom komputer akan terisi otomatis
Misal Anda memilih Gunting kemudian di kolom kumputer muncul Kertas, maka Anda menang karena gunting bisa memotong kertas.

Demikian artikel singkat pada kali ini semoga bermanfaat.