C#.Net Jetman Oyunu
Formu 549x 291boyutunda açıoruz Karakterimiz için 69×31 boyutunda picturebox ekliyoruz Engeller için 2 adet 30×80 boyutunda picturebox ekliyoruz Bilgilendirme mesajı score yazısı ve puan için 3 tane label ekliyoruz. Yeni oyun ve seviye seçeneği için menu strip ekliyoruz Karakterin yukarı ve aşağı hareketi için 2 adet timer ekliyoruz Gerçekleşicek işlemler içinde bir adet timer daha ekliyoruz (boyutlar değişirse işlemlerde değişeceği için boyutları değiştirmemeye çalışın)
label1 in text ine “mausa basarak başlayın” yazıyoruz label2 ye “score:” yazıyoruz label3 ün içini boşaltıyoruz.
değişkenlerimizin her yerde kullanılabilmesi için aşağıdaki kısma yazıyoruz
karakterin kordinatı için a,b engellerin kordinatları için a1,b1,a2,b,2 puan için
<p class="MsoNormal" style="MARGIN: 0cm -4.9pt 0pt 0cm"> namespace jetman
{
public partial class Form1 : Form
{
int a, b,a1,b1,a2,b2,s;
public Form1()
{
InitializeComponent();
}
<p class="MsoNormal" style="MARGIN: 0cm -4.9pt 0pt 0cm">
Form loadımıza
ekliyoruz.[/code] karakterin mausa basılı tutulduğunda yukarı gitmesini istediğim için formun boş bir yerine tıklayıp properties penceresindeki eventse tıklıyoruz. ordan mausedown u buluyoruz ve yanındaki boşluğa çift tıklıyoruz.
ekliyoruz mausu bıraktığında karakterin düşmesini sağlamak için yukarıdaki resimdeki events kısmına yeniden geliyoruz mauseup a giriyoruz.
oyunda mausumuz engellere geldiğinde duraksamaması için yazıyoruz yukarı hareket için timer1 in içine aşağı hareket için timer2 nin içine pictureBox1.Location = new System.Drawing.Point(a, b=b-2); //(karakterin y kordinatını her işlemde 2 arttırır yani formun üst kısmına uzaklaştırır) karakterimize görünüm kazandırmak için picturebox a tıklayıp properties penceresinde image kısmında (…) tıklıyoruz project resource file ı seçip importa tıklıyoruz ve resim ekliyoruz aynı işlemi engeller içinde yapıyoruz. karakterimizin hareketi bitti şimdi engellerin rasgele karakterimizin üstüne gelmesini yapıcaz timer'ın içine giriyoruz
şimdide işin tuzu biberi menüscriptte aşağıdaki seçenekleri ekliyoruz yeni oyuna bir kere tıklıyoruz propertiesten shortcutkeys ten kısayol tuşu veriyoruz yeni oyunun içine giriyoruz
oyunumuz bitmiş oluyor. Projeyi İndir: C# Oyun Örnek Jetman
<p class="MsoNormal" style="MARGIN: 0cm -4.9pt 0pt 0cm"> a1 = 550; //(engelin x kordinatı)
b1 = 12; //(engelin y kordinatı)
a2 = 850; //(engelin x kordinatı)
b2 = 30; // (engelin y kordinatı)
a = 76; // (karakterin x kordinatı)
b = 76; // (karakterin y kordinatı)
pictureBox1.Location = new System.Drawing.Point(a, b);
// (karakterimizin x,y kordinatları)
timer1.Interval=15; // (karakterin yukarı hareketinin hızı)
timer2.Interval = 15; // (karakterin aşağı hareketinin hızı)
timer3.Interval = 50; //(yapılacak işlem ve şartlar) </span></span></span></span>
<p class="MsoNormal" style="MARGIN: 0cm -4.9pt 0pt 0cm">
timer1.Enabled = true; //(yukarı hareketi sağlıyacak olan timerı açar)
timer2.Enabled = false; //(aşağı hareketi sağlıyacak olan timerı kapar)
timer3.Enabled = true; //(işlemlere başlar(kısaca oyun başlar))
label1.Text = ""; //(mausa basınız yazısını siler)
timer2.Enabled = true; //(aşağı hareketi sağlıyacak olan timerı açar)
timer1.Enabled = false; //(yukarı hareketi sağlıyacak olan timerı kapar)
her iki engelin mauseup olayına[code='Csharp']
timer2.Enabled = true;
timer1.Enabled = false;[/code]
her iki engelin mausedown olayına
timer1.Enabled = true;
timer2.Enabled = false;
pictureBox1.Location = new System.Drawing.Point(a, b=b-2); //(karakterin y kordinatını her işlemde 2 azaltır formun en üst kısmı 0 olduğu için üst kısma yaklaşmış olur)

Random r = new Random(); //(rasgele değer vermesi için)
s = s + 1; //(puan sayacımız)
label3.Text = s.ToString(); //(puanlarımızı stringe çevirip label3 e atılması)
pictureBox2.Location = new System.Drawing.Point(a1 = a1 - 5, b1);
//(engelin x kordinatından her işlemde 5 çıkarır engel sola doğru hareket eder)
pictureBox3.Location = new System.Drawing.Point(a2 = a2 - 5, b2);
//(engelin x kordinatından her işlemde 5 çıkarır engel sola doğru hareket eder)</span></span>
if (a1 <= -30) { a1 = 550; b1 = r.Next(250); }
if (a2 <= -30) { a2 = 550; b2 = r.Next(250); }
//(eğer buton kendi genişliği kadar formun dışına çıkarsa(kendi genişliği 30 olduğu için -30) butonu formun sağ köşesine atar formun genişliği 549 olduğu için kordinatını 550 veririz, b1=r.next(250) komutu engelimize rasgele y kordinat verir böylece çeşitli yerlerden engeller gelir)
if (b <= 0 || b >= 225) //(karakterimizin y kordinatı formun dışına çıktığında oyunun durmasını sağlar, 225olmasının nedenide formumuzun 291 yüksekliğinde olması karakterin yüksekliğini formun yüksekliğinden çıkarımından buluyoruz anlamadığım nedenden dolayı bu sayıyı daha az tutmak zorunda kaldım)
{
timer1.Enabled = false;
timer2.Enabled = false;
timer3.Enabled = false;
MessageBox.Show("gameover");
} //(formun dışına çıkarsa bütün işlemler durur ve gameover yazısı çıkar)
if (a >= a1 - 69 &amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp; a <= a1 + 30 &amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp; b >= b1 - 31 &amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp; b <= b1 + 80)
{ timer1.Enabled = false;
timer2.Enabled = false;
timer3.Enabled = false;
MessageBox.Show("gameover");
}
if (a >= a2 - 69 &amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp; a <= a2 + 30 &amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp; b >= b2 - 31 &amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp; b <= b2 + 80)
{
timer1.Enabled = false;
timer2.Enabled = false;
timer3.Enabled = false;
MessageBox.Show("gameover");
} //yukarıdaki çarpışma senaryoları gerçekleşirse oyun durur çarpışma içinde kağıt kalem biraz hesap gerek aşağıdaki gibi

</span>a1 = 550;
b1 = 12;
a2 = 850;
b2 = 30;
a = 76;
b = 76;
pictureBox1.Location = new System.Drawing.Point(a, b);
pictureBox2.Location = new System.Drawing.Point(a1, b1);
pictureBox3.Location = new System.Drawing.Point(a2, b2);
timer1.Enabled = false;
timer2.Enabled = false;
timer3.Enabled = false;
s = 0;
//(timerları durdurmuş,sayaç ve kordinatları ilk haline getirmiş oluyoruz
kolayın içine
timer3.Interval = 50;
ortanın içine
timer3.Interval = 20;
zorun içine
timer3.Interval = 1;




Son Yorumlar