Kita akan membuat sebuah…. GAME sederhana.
Yap, tapi ini bukan bener-bener “Game” yang aku maksud. Kita disini hanya akan menggunakan example module HitTest buatanku .
HitTest itu apa?
Itulah pertanyaannya. Sebenarnya, bagi anda yang sudah bergelut di pemrogramman actionscript Flash, pasti sudah tahu apa itu HitTest. Benar kan?
Yap, HitTest itu maksudnya adalah apabila dua object saling tabrakan atau HIT bahasa inggrisnya…
Trus, bagaimana penerapannya dalam Visual Basic 6.0? Nah disinilah fungsi module HitTest by VirSpector ini
Pertama-tama yang perlu anda lakukan adalah mengunduh module ini dulu. Tenang kok, kecil kok modulenya. Dan Open Source lagi, jadi semua orang bisa ngemodif gimanapun. Pokoknya, terserah deh!
Silahkan lihat download linknya di bagian bawah page ini.
Ok, lanjuuuttt….
Sekarang extract dulu filenya, lalu taruh modulenya ditempat yang aman (wow, module aja harus dijaga biar aman ).
Lanjuuutt lagi…
Sekarang, buka Visual Basic 6, pilih Standard EXE (ataupun Enterprise Edition Controls juga enggak apa-apa kok), terus load modulenya dengan cara menklik Project > Add Module lalu ke tab Existing dan buka modulenya.
Sudah ke load sekarang. Tolong jangan diotak-atik ya Modulenya, bisa dibilang itu Copyright.
Sekarang kita buat dua buah shape dan taruh seperti ini:
Pastikan kedua shape itu bernama Shape1 dan Shape2
Lalu, buatlah sebuah timer dengan nama Timer1 dan set intervalnya ke 1. Nah, sekarang tuliskan kode dibawah ini:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Timer1_Timer()
If GetAsyncKeyState(37) <> 0 Then
Shape1.Left = Shape1.Left – 30
ElseIf GetAsyncKeyState(38) <> 0 Then
Shape1.Top = Shape1.Top – 30
ElseIf GetAsyncKeyState(39) <> 0 Then
Shape1.Left = Shape1.Left + 30
ElseIf GetAsyncKeyState(40) <> 0 Then
Shape1.Top = Shape1.Top + 30
End If
End Sub
If GetAsyncKeyState(37) <> 0 Then
Shape1.Left = Shape1.Left – 30
ElseIf GetAsyncKeyState(38) <> 0 Then
Shape1.Top = Shape1.Top – 30
ElseIf GetAsyncKeyState(39) <> 0 Then
Shape1.Left = Shape1.Left + 30
ElseIf GetAsyncKeyState(40) <> 0 Then
Shape1.Top = Shape1.Top + 30
End If
End Sub
Sekarang coba jalankan programnya. Anda bisa menggerakan Shape1 dengan keyboard anda.
Lanjuuuttt…
Sekarang kita akan buat supaya Shape1 tidak akan bertubrukan dengan Shape2. Nah, disini dia kita akan menggunakan Module Hit Test. Silahkan lihat (copas juga gpp) dibawah ini:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Timer1_Timer()
If GetAsyncKeyState(37) <> 0 Then
Shape1.Left = Shape1.Left – 30
If HitTest(Shape1, Shape2) = True Then
Shape1.Left = Shape1.Left + 30
End If
ElseIf GetAsyncKeyState(38) <> 0 Then
Shape1.Top = Shape1.Top – 30
If HitTest(Shape1, Shape2) = True Then
Shape1.Top = Shape1.Top + 30
End If
ElseIf GetAsyncKeyState(39) <> 0 Then
Shape1.Left = Shape1.Left + 30
If HitTest(Shape1, Shape2) = True Then
Shape1.Left = Shape1.Left – 30
End If
ElseIf GetAsyncKeyState(40) <> 0 Then
Shape1.Top = Shape1.Top + 30
If HitTest(Shape1, Shape2) = True Then
Shape1.Top = Shape1.Top – 30
End If
End If
End Sub
If GetAsyncKeyState(37) <> 0 Then
Shape1.Left = Shape1.Left – 30
If HitTest(Shape1, Shape2) = True Then
Shape1.Left = Shape1.Left + 30
End If
ElseIf GetAsyncKeyState(38) <> 0 Then
Shape1.Top = Shape1.Top – 30
If HitTest(Shape1, Shape2) = True Then
Shape1.Top = Shape1.Top + 30
End If
ElseIf GetAsyncKeyState(39) <> 0 Then
Shape1.Left = Shape1.Left + 30
If HitTest(Shape1, Shape2) = True Then
Shape1.Left = Shape1.Left – 30
End If
ElseIf GetAsyncKeyState(40) <> 0 Then
Shape1.Top = Shape1.Top + 30
If HitTest(Shape1, Shape2) = True Then
Shape1.Top = Shape1.Top – 30
End If
End If
End Sub
Lihat semua yang saya BOLD. Itu adalah script HitTestnya.
Sekarang coba jalankan dan coba tabrak tuh Shape2. Mana bisa?? Paling cuma keserempet aja (Kecuali klo dari awal posisinya emang udah tabrakan).
Ok, itu aja. Semoga artikel ini berguna yaa. Pamit dulu deh…
EIIITTTSSSS… WOY BLI (Bli Artinya kakak dalam bahasa Bali. Juga bisa dipakai dengan arti yang sama dengan mas), mana modulenyaaa???
Oh iya, sampe lupa nih aku …
Link downloadnya ada di websiteku kok, silahkan lihat aja link dibawah tulisan Created by VirSpectornya. Trus scroll ke bagian bawah page, ada tombol downloadnya. Silahkan ke TKP aja...