Ö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...
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
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 ?
< Resime gitmek için tıklayın >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi alicanakca -- 27 Haziran 2019; 16:21:3 >