Şimdi Ara

Nesneler Duruyor [VB.NET]

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
388
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Öncelikle merhabalar, ekte görüldüğü üzere küçük bir oyun yapmaya çalışıyorum. Ancak her "Enter" tuşuna bastığımda oluşturduğum mermiler kayboluyor ve yeniden oluşuyor. Buradaki kullandığım kodlar :

    Dim mermi As New PictureBox

    Dim boyut1 As New Size(30, 10)

    Dim c As Integer = PictureBox1.Location.Y - 18
    Dim d As Integer = PictureBox1.Location.Y - 45
    Dim a As New Point(PictureBox1.Location.X - 28, PictureBox1.Location.Y + 18)
    mermi.Size = boyut1
    mermi.Location = a
    mermi.ImageLocation = Application.StartupPath + "\bullet.png"
    Panel1.Controls.Add(mermi)
    bullet1.Start() ---->>>>>>> mermiyi ilerletiyor...

    şeklinde. Nerede hata yapıyorum ?



    < Bu mesaj bu kişi tarafından değiştirildi alicanakca -- 27 Haziran 2019; 16:21:3 >







  • her mermiye bastığında aynı mermi nesnesi üzerinden işlem yapıyorsundur. bu yüzden tekrar yaratılıp baştan başlıyor.

    bunun için bir mermi nesnesi dizisi kullanmalısın. mermi nesnesi düşmana vurduğunda yada ekrandan çıktığında hafızadan silinsin. yaratılmak istendiğinde de diziye yeni bir nesne ekle. mermiyi ilerleten fonksiyonu da tüm dizi üzerinde çalıştırırsın olur biter.

    aynı oyunu konsolda yapmıştım. buradan inceleyebilirsin anlattığım mantıkta yapıyorum. kodlar c++ ile yazıldı ama mantık olarak bir şey farketmiyor.
    GitHub
    burakyzn/FinalProject
    https://github.com/burakyzn/FinalProject




  • Teşekkürler deneyeceğim
  • quote:

    Orijinalden alıntı: Guest-DA02D78F4

    her mermiye bastığında aynı mermi nesnesi üzerinden işlem yapıyorsundur. bu yüzden tekrar yaratılıp baştan başlıyor.

    bunun için bir mermi nesnesi dizisi kullanmalısın. mermi nesnesi düşmana vurduğunda yada ekrandan çıktığında hafızadan silinsin. yaratılmak istendiğinde de diziye yeni bir nesne ekle. mermiyi ilerleten fonksiyonu da tüm dizi üzerinde çalıştırırsın olur biter.

    aynı oyunu konsolda yapmıştım. buradan inceleyebilirsin anlattığım mantıkta yapıyorum. kodlar c++ ile yazıldı ama mantık olarak bir şey farketmiyor.
    https://github.com/burakyzn/FinalProject
    yine ben :)

    kendi çapımda hallettim ancak yeniden ateşlendiğinde bir önceki mermileri durduruyor.

    For i = 0 To mermisayisi - 1
    b(i) = New PictureBox
    Panel1.Controls.Add(b(i))
    b(i).Size = boyut1
    b(i).Location = a
    b(i).ImageLocation = Application.StartupPath + "\bullet.png"
    Next
    bullet1.Start() 'alakası yok, ilerleme sağlıyor
    Timer1.Start() 'alakası yok, ilerleme sağlıyor





  • quote:

    Orijinalden alıntı: alicanakca

    yine ben :)

    kendi çapımda hallettim ancak yeniden ateşlendiğinde bir önceki mermileri durduruyor.

    For i = 0 To mermisayisi - 1
    b(i) = New PictureBox
    Panel1.Controls.Add(b(i))
    b(i).Size = boyut1
    b(i).Location = a
    b(i).ImageLocation = Application.StartupPath + "\bullet.png"
    Next
    bullet1.Start() 'alakası yok, ilerleme sağlıyor
    Timer1.Start() 'alakası yok, ilerleme sağlıyor



    Alıntıları Göster
    yüksek ihtimal bullet1.start() fonksiyonun tek mermi üzerine tasarlanmış. sen yeni mermi nesnesini fonksiyona verince diğer mermiler üzerindeki işlemini bırakıyor. hepsini kontrol edecek şekilde tasarlarsan düzelebilir. bu ve önceki sorunu ben de konsolda oyunu yaparken yaşamıştım :D neredeyse aynı adımlarda hata yapmışız :D




  • quote:

    Orijinalden alıntı: Guest-DA02D78F4

    yüksek ihtimal bullet1.start() fonksiyonun tek mermi üzerine tasarlanmış. sen yeni mermi nesnesini fonksiyona verince diğer mermiler üzerindeki işlemini bırakıyor. hepsini kontrol edecek şekilde tasarlarsan düzelebilir. bu ve önceki sorunu ben de konsolda oyunu yaparken yaşamıştım :D neredeyse aynı adımlarda hata yapmışız :D

    Alıntıları Göster
    elimden geleni yaptım ama bir türlü işin içinden çıkamadım. githubta yer alan gmail adresine projemi yolluyorum kontrol eder misin ?
  • quote:

    Orijinalden alıntı: alicanakca

    elimden geleni yaptım ama bir türlü işin içinden çıkamadım. githubta yer alan gmail adresine projemi yolluyorum kontrol eder misin ?

    Alıntıları Göster
    maalesef şuan bir vb.net projesini kontrol edecek durumda değilim. üzerinde uğraşmaya devam et çözüme illa ki ulaşırsın.
  • inşallah. ilgin için teşekkürler

    Konuya uğrayan arkadaşlardan da çözüm önerisi bekliyorum..
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.