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