c# da çizilen şekli hareket ettirme
5
●1.269
- 24-12-2016, 18:29:58nasil cizdiriyorsun bilmiyorum ama cizdirdigin dairenin nesnesini global olarak yap (her yerde erisebilmek icin).. daha sonra da mesela bir timer in icinde ya da buton click in icinde bu cemberin konumunu degistirme kodunu yazacaksin. (location change)
en onemli nokta koordinatlari degistirdikten sonra this.Invalidate(); metodunu cagirman. - 24-12-2016, 18:53:15cevap için teşekkürler.ertan2002 adlı üyeden alıntı: mesajı görüntüle

şu şekilde oluşturdum;
Graphics bs;
bs = this.CreateGraphics();
SolidBrush boya = new SolidBrush(Color.Black);
bs.FillEllipse(boya, 55, 60, 65, 70);
bu şekli random bir şekilde nasıl hareket ettirebilirim timer yardımıyla - 24-12-2016, 20:02:51Üyeliği durdurulduPictureBox nesnesi kullanıyorsan Properties ten Location özelliğini kodla değiştirip hareket etmesini timer ile sağlaya bilirsin.emrenazli adlı üyeden alıntı: mesajı görüntüle
Formun boyutlarını alıp form içerisinden çıkmamasınıda sağlaya bilirsin - 25-12-2016, 00:44:34basit bir ornek yaptim.. kendine gore duzenlersin.. Timer i kontrol olarak eklemedim direk kodda kullandim, fark yok pek. Istiyorsan forma bir timer ekle, properties den interval i ayarla ve timer a cift tiklayip koda gir. Benim yazdigim timertickon metodunun icerigini alabilirsin.
2 tane timer yaptim, birisi her 1 saniyede bir daire ciziyor, digeri de ondan 1 saniye sonra daireyi siliyor (daha dogrusu formu yeniliyor diyelim- invalidate timer i).
Anlamadigin yer olursa sorabilirsin, bastice yazdim kodu ki daha iyi anlayabilmen acisindan.
using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { //Degiskenler Random random = new Random(); Graphics benimsayfam; private Timer timer; private Timer invalidateTimer; private const int en=65; private const int boy=75; //kurucu metod public Form1() { InitializeComponent(); timer =new Timer(); timer.Interval = 1000; timer.Tick+=TimerOnTick; invalidateTimer = new Timer(); invalidateTimer.Interval = 1000; invalidateTimer.Tick += InvalidateTimerOnTick; } //form yuklendikten sonra calisan metod private void Form1_Load(object sender, EventArgs e) { timer.Start(); } //sekli cizdiren metod private void SekilCiz() { benimsayfam = this.CreateGraphics(); SolidBrush boya = new SolidBrush(Color.Black); int sayi1 = RasgeleSayiUret(false); int sayi2 = RasgeleSayiUret(true); benimsayfam.FillEllipse(boya, sayi1,sayi2, en,boy); invalidateTimer.Start(); } //rasgele sayi ureten metod private int RasgeleSayiUret(bool yataymi) { int uretilenSayi; if (yataymi) uretilenSayi = random.Next(0, this.Width - en - 5); else uretilenSayi= random.Next(0, this.Height - boy - 5); return uretilenSayi; } //sekli belli surede cizdiren timer tick metodu private void TimerOnTick(object sender, EventArgs eventArgs) { SekilCiz(); } //formu yenileyen timer tick metodu private void InvalidateTimerOnTick(object sender, EventArgs eventArgs) { invalidateTimer.Stop(); this.Invalidate(); } } } - 25-12-2016, 18:17:17hayırlı akşamlar ellerine sağlık teşekkür ederim kodlardan örnek alarak yapmaya çalışacağım takılırsam yine danışabilirim tekrar teşekkürlerertan2002 adlı üyeden alıntı: mesajı görüntüle
