Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » visual basic makaleleri » oyun (eğik atış)
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

Bir Form üzerinde birden çok görüntü kullanabilmek

Yazar: Webmaster

Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 11501
Yayın Tar:31.05.2009
Yazar : halil3511
Hit :4536

Bu Yazarın Yazıları Sadece bu yazarın makale göster
Bu Yazıyı Tavsiye Et

Merhaba bu programda basit bir oyun yapabilirsiniz.
Oyun karşıdaki cismi açı ve hıza göre vurmayı amaçlamıştır.tabii bizim amacımız oyun oynamak için program yazmak değil, sadece basit fizik kurallarını nasıl kullanacağımızı görmek.
Biraz fizik derslerini hatırlayalım; h:yükseklik,G:ivme=10, t=zaman(saniye) , v= hız
h = Vy*t - ½ * G * t * t
X=Vx * t

Bunu fizikte eğik atış konusundan hatırlayacaksınız.
Ama ben bişey anlamadım diyosanız. Önemli değil zaten hatırlatmak için verdim.
Fakat mantığı kavramak için buna ihtiyaç var.

Geçelim komutlara;

En başta söyleyim tek bir form kullanacağız.
Tek kullanacağımız nesne timer nesnesi olacak.
Şimdi timer nesnesi ekleyelim.

Komutları üç başlığın altına yazacağız formun load‘una ve keydown’ una
Vede time1’ in içine.


İlk önce değişkenleri tanımlamamız gerekmektedir.

Burayı yapışırın.

Dim mx, sayac, my, bx, by, uzunluk, r, acı, hız, radyan, tucus, hmax, xmenzil, hx, hy As Integer

Dikkat kullandığınız değişkenleri doğru yazdınıza emin olun.Bir yerde kullandığımız Türkçe karekterin ,başka yerde benzer harfi kullanrak yanlışlık yapmayın. Örneğin: bir yerde “i” diğer yede “İ” kullanmayın.

Formun key down ‘nuna yazacağımız komutlar sayesinde açı ,hız,maximum yükseklik ve menzil uzunluğunu görebiliriz.
Şimdi aşağısını yapıştıralım.

Keycode ile değişkenleri,yön tuşlarını kullanarak azaltıp çoğaltacağız.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Cls
Circle (hx, hy), 200, vbBlack
If KeyCode = vbKeyLeft And hız > 0 Then hız = hız - 1
If KeyCode = vbKeyRight Then hız = hız + 1
If KeyCode = vbKeyUp And acı < 90 Then acı = acı + 1
If KeyCode = vbKeyDown And acı > 0 Then acı = acı - 1
If KeyCode = vbKeyReturn Then Timer1.Interval = 10
radyan = acı * 3.14 / 180
tucus = 2 * hız * Sin(radyan) / 10
hmax = (hız * Sin(radyan)) ^ 2 / (2 * 10)
xmenzil = hız * Cos(radyan) * tucus
CurrentX = 100
CurrentY = 100
Print "acı=" & acı
CurrentX = 100
CurrentY = 300
Print "hız=" & hız
CurrentX = 100
CurrentY = 500
Print "ucus süresi=" & tucus
CurrentX = 100
CurrentY = 700
Print "hmax=" & hmax
CurrentX = 100
CurrentY = 900
Print "xmenzil=" & xmenzil
bx = mx + Cos(radyan) * uzunluk
by = my - Sin(radyan) * uzunluk
DrawWidth = 3
Line (mx, my)-(bx, by), vbRed
Circle (bx, by), r, vbBlue

End Sub

Formun load una yazacalarımızla nesneleri yerleştirmiş olacağız.
Şimdi aşağısını formun loadına yazalım.

Private Sub Form_Load()
hx = ScaleWidth - 1000
hy = ScaleHeight - 2000
Circle (hx, hy), 200, vbBlack
Cls
mx = 100
my = ScaleHeight - 100
acı = 45
hız = 100
uzunluk = 1000
r = 100
radyan = acı * 3.14 / 180
bx = mx + Cos(radyan) * uzunluk
by = my - Sin(radyan) * uzunluk
DrawWidth = 3
Line (mx, my)-(bx, by), vbRed
Circle (bx, by), r, vbBlue
End Sub

En başta timer nesnesi ekleyi demiştim. İşte o şimdi bizim işimize yarayacak
Timer ın içine yazacağımız komutla formun içindeki etkileşimleri ortaya çıkaracağız.

Private Sub Timer1_Timer()
sayac = sayac + 1
x = hız * Cos(radyan) * sayac
y = hız * Sin(radyan) * sayac - (10 * sayac ^ 2) / 2
zx = bx + 2 * x
zy = by - y
Circle (zx, zy), r, vbBlue
deger = ((hy - zy) ^ 2 + (hx - zx) ^ 2) ^ (1 / 2)
If deger <= 300 Then
MsgBox "vurdunuz"
Timer1.Interval = 0
sayac = 0
End If
If sayac > tucus Then
sayac = 0
Timer1.Interval = 0
End If
End Sub

Bunu da gerçekleştirdikten sonra program hazır hale gelmiştir.

En son karşımıza aşağıdaki gibi bir form çıkacak

Bu formda atışı enter tuşu ile çubuğun açısın aşağı ,yukarı ile hızı ise sağ,sol tuşlarıyla ayarlayacağız isterseniz bunları ilgili komutları değiştirerek ,değiştirebilirsiniz.

Gördünüz zorlanacak hiçbir şey yok .Ayrıca bu mantığı kullanarak basic te çok farklı şeyler yaratabilirsiniz.

Not: Sadece kırmızıyla yazılan yer komutlarla ilgilidir,diğer yerler bilgilendirme ile ilgilidir, bazı kırmızı yazılmış yerler önemliliği vuglamıştı.Onun için dikkatli bakınız.Kolay gelsin

Mail:halil.kan@windowslive.com




Yorumlar, eklemeler ve düşünceler
        mrb güzel yapmısınız teşekkürler


   batlam74, 03.06.2009 18:10
   güzeL çaLışma tebrikler:)

   neomanyak, 05.06.2009 12:45
   hoş ve güzel tebrikler

   firatbaysu, 10.09.2009 17:14
   çok saol güzel paylaşım

   shezgin, 15.09.2009 12:47
   Güzel olmuş teşekkürler...

   UnLimited, 16.09.2009 23:12
   çok güzel olmuş tebrikler...

   akcay12, 12.11.2009 17:16
   çokk güzel olmuş elinize sağlık

   sago34, 16.01.2011 22:51
   abi bi terslik var bende çalışmıyor bu oyun timer dışında forma bişey eklemem mi lazım anlamadım ya


   kaygan11, 26.10.2014 12:44
© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin