Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
7
Cevap
416
Tıklama
0
Öne Çıkarma
Nesneler Duruyor [VB.NET]
A
6 yıl
Er
Konu Sahibi

Ö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 ?
< Resime gitmek için tıklayın >





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

G
6 yıl
Yarbay

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


Bu mesaja 2 cevap geldi.
A
6 yıl
Er
Konu Sahibi

Teşekkürler deneyeceğim




Bu mesajda bahsedilenler: @Wepawet
A
6 yıl
Er
Konu Sahibi

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

< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
G
6 yıl
Yarbay

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

< Resime gitmek için tıklayın >

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


Bu mesaja 1 cevap geldi.
A
6 yıl
Er
Konu Sahibi

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 ?


Bu mesaja 1 cevap geldi.
G
6 yıl
Yarbay

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.


Bu mesaja 1 cevap geldi.
A
6 yıl
Er
Konu Sahibi

inşallah. ilgin için teşekkürler

Konuya uğrayan arkadaşlardan da çözüm önerisi bekliyorum..




Bu mesajda bahsedilenler: @Wepawet
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.