Merhabalar, derse başlamadan önce belirtmek isterim ki Visual Basic bir oyun kodlama motoru değildir. Yapabileceklerimiz kısıtlıdır. Visual basic bize her form'da 255 adet eklenti sınırı koymaktadır. Eğer çok büyük bir oyun yapmak istiyorsanız Unity 3D idealdir diyebilirim.

Şimdi dersimize geçecek olursak ilk olarak karakter yürütmek ile başlayalım.

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Const VK_LEFT = &H25
Private Const VK_UP = &H26
Private Const VK_RIGHT = &H27
Private Const VK_Down = &H28
Burada "GetAsyncKeyState" APIsini kullanarak tuşlarımızı tanımladık. Bu tuşlar yön tuşlarıdır (yukarı, aşağı, sol, sağ). Yukarıda kalın olarak gösterdiğim yer ise tuş pointerlarıdır. Şimdi form'umuza yürütmek için bir nesne ekleyelim örnek ben Command ekledim ve belirlediğimiz 4 tuşunda çalışması için 4 adet timer ekliyelim.

Private Sub Timer1_Timer()
If GetAsyncKeyState(VK_UP) Then
nesne.Top = nesne.Top - 5
End If
End Sub
Oluşturduğumuz bir Timer'ın içerisine bu kodu ekleyelim ve satır satır açıklayalım.
İlk satırda VK_UP yani yukarı yön tuşumuza basıldığında ne yapmasını gerektiğini belirledik. Yukarı yön tuşuna basıldığında nesne'nin yukarı koordinatından 5 koordinat eksilttik ve döngüyü kapattık. Kodu Türkçeleştirecek olursak şu şekilde olacaktır:

Eğer yukarı yön tuşuna basılırsa
nesne'nin yükseklik koordinatından 5 koordinat düş
Döngüyü bitir.
Kodun mantığını kavradığımıza göre diğer tuşarın kodlarını şu şekilde sıralıyabiliriz:
Private Sub Timer2_Timer()
If GetAsyncKeyState(VK_LEFT) Then
nesne.Left = nesne.Left - 5
End If
End Sub

Private Sub Timer3_Timer()
If GetAsyncKeyState(VK_RIGHT) Then
nesne.Left = nesne.Left + 5
End If
End Sub

Private Sub Timer4_Timer()
If GetAsyncKeyState(VK_Down) Then
nesne.Top = nesne.Top + 5
End If
End Sub
Umarım anlaşılmıştır hepinize kolay gelsin.

[COLOR=Red]Örnek projeyi:[/COLOR] indir

[SIZE=1]kaynak[/SIZE]