Cottonmouth
Aileden
1) Yeni Vb.net Windows Form project açıyoruz.
2) Forma bir Picturebox ekliyoruz. Name Picturebox1 olarak kalsın ben öyle anlattım. Sağ üstteki ok işaretine basarak Dock in Parent Container'a basın.
Form1 KeyDown Eventi
Form1 KeyUp eventi
CropBitmap adında bir sub oluşturuyoruz.
Picturebox1 paint eventi
yurumealt adında Timer'ın tick eventi
yurumesag adında Timer'ın tick eventi
yurumesol adında Timer'ın tick eventi
yurumeust adında Timer'ın tick eventi
Formda sağ sol üst alt tuşlarına basılı tuttukça karakter hareket edicek işte Amaç DrawImageyi göstermek aslında ama böyle daha ilgi çekici bir hal alır diye düşündüm.
Daha çok performans sağlayan daha hızlı yöntemler var tabikide ama aklıma ilk gelen buydu
2) Forma bir Picturebox ekliyoruz. Name Picturebox1 olarak kalsın ben öyle anlattım. Sağ üstteki ok işaretine basarak Dock in Parent Container'a basın.
3) Resmimiz bu. Bunu nereye attıysanız bilgisayarda ilerideki "c:\image.png" yi ona göre değiştirin.
4) 4 tane Timer ekleyin. İsimlerini yurumealt, yurumesag, yurumesol, yurumeust yapın. Enabled özellikleri False Intervallerde 150 olsun.
5) Kod yazmaya geçelim.
Değişkenlerimizi tanımlıyoruz.
4) 4 tane Timer ekleyin. İsimlerini yurumealt, yurumesag, yurumesol, yurumeust yapın. Enabled özellikleri False Intervallerde 150 olsun.
5) Kod yazmaya geçelim.
Değişkenlerimizi tanımlıyoruz.
Kod:
Dim g As System.Drawing.Graphics
Kod:
Dim top As Integer = 0
Dim left As Integer = 0
Dim konumtop As Integer = 0
[LEFT] Dim konumleft As Integer = 0
[/LEFT]
Form1 KeyDown Eventi
Kod:
If e.KeyCode = Keys.Down Then
yurumealt.Enabled = True
ElseIf e.KeyCode = Keys.Right Then
yurumesag.Enabled = True
ElseIf e.KeyCode = Keys.Left Then
yurumesol.Enabled = True
ElseIf e.KeyCode = Keys.Up Then
yurumeust.Enabled = True
End If
Form1 KeyUp eventi
Kod:
yurumealt.Enabled = False
yurumesag.Enabled = False
yurumeust.Enabled = False
yurumesol.Enabled = False
left = 32
PictureBox1.Refresh()
CropBitmap adında bir sub oluşturuyoruz.
Kod:
Private Function CropBitmap(ByRef bmp As Bitmap, ByVal cropX As Integer, ByVal cropY As Integer, ByVal cropWidth As Integer, ByVal cropHeight As Integer) As Bitmap
Dim rect As New Rectangle(cropX, cropY, cropWidth, cropHeight)
Dim cropped As Bitmap = bmp.Clone(rect, bmp.PixelFormat)
Return cropped
End Function
Picturebox1 paint eventi
Kod:
Dim bitmappp As Bitmap
bitmappp = CropBitmap(New Bitmap("c:\image.png"), left, top, 32, 32)
Dim grp As Graphics
grp = e.Graphics()
grp.DrawImage(bitmappp, konumleft, konumtop)
yurumealt adında Timer'ın tick eventi
Kod:
top = 0
konumtop += 10
If left = 64 Then
left = 0
Else
left = 64
End If
PictureBox1.Refresh()
yurumesag adında Timer'ın tick eventi
Kod:
top = 64
konumleft += 10
If left = 64 Then
left = 0
Else
left = 64
End If
PictureBox1.Refresh()
yurumesol adında Timer'ın tick eventi
Kod:
top = 32
konumleft -= 10
If left = 64 Then
left = 0
Else
left = 64
End If
PictureBox1.Refresh()
yurumeust adında Timer'ın tick eventi
Kod:
top = 96
konumtop -= 10
If left = 64 Then
left = 0
Else
left = 64
End If
PictureBox1.Refresh()
Formda sağ sol üst alt tuşlarına basılı tuttukça karakter hareket edicek işte Amaç DrawImageyi göstermek aslında ama böyle daha ilgi çekici bir hal alır diye düşündüm.
Daha çok performans sağlayan daha hızlı yöntemler var tabikide ama aklıma ilk gelen buydu
Son düzenleme: