• Forum vBulletin altyapısından Xenforo altyapısına geçirildi, bu sebeple eski şifreleriniz ile foruma giriş yapamayacaksınız, parolamı unuttum adımından mailiniz ile şifre sıfırlayarak giriş yapabilirsiniz.

    Üyeliklerinde geçerli bir mail adresi olmadığı için sıfırlama yapamayacak kullanıcılar forum kullanıcı adlarını ve yeni şifrelerini yazarak info@maxigame.org adresine şifre sıfırlamak istediklerine dair bir mail göndersinler şifrelerini sıfırlayıp mail adreslerini güncelleyeceğiz. Şifreniz sıfırlandıktan sonra foruma giriş yapıp tekrar istediğiniz gibi değiştirebilirsiniz.

Vb.NET Forma Karakter Ekleme - Hareket Ettirme :) (DrawImage)

Cottonmouth

Aileden
Aktiflik
K.Tarihi
14 Ara 2011
Mesajlar
253
Puanı
162
Konum
Bursa
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.

db4bf97a0658441abaae2ac.png


3) Resmimiz bu. Bunu nereye attıysanız bilgisayarda ilerideki "c:\image.png" yi ona göre değiştirin.

2hk3u.png


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 :D Amaç DrawImageyi göstermek aslında ama böyle daha ilgi çekici bir hal alır diye düşündüm.

7eb504593e33412bac8e41b.png

Daha çok performans sağlayan daha hızlı yöntemler var tabikide ama aklıma ilk gelen buydu :D
 
Son düzenleme:
  • Beğeni
Reactions: Iwa
Geri
Üst