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
[code language=”Csharp”]<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">[/code]
Form loadımıza
[code language=”Csharp”]<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">[/code]
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.
[code language=”Csharp”] 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)[/code]
ekliyoruz
mausu bıraktığında karakterin düşmesini sağlamak için yukarıdaki resimdeki events kısmına yeniden geliyoruz mauseup a giriyoruz.
[code language=”Csharp”]
timer2.Enabled = true; //(aşağı hareketi sağlıyacak olan timerı açar)
timer1.Enabled = false; //(yukarı hareketi sağlıyacak olan timerı kapar)[/code]
oyunda mausumuz engellere geldiğinde duraksamaması için
her iki engelin mauseup olayına[code=’Csharp’]
timer2.Enabled = true;
timer1.Enabled = false;[/code]
her iki engelin mausedown olayına
[code language=”Csharp”]timer1.Enabled = true;
timer2.Enabled = false;[/code]
yazıyoruz
yukarı hareket için timer1 in içine
[code language=”Csharp”]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)[/code]
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
[code language=”Csharp”]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[/code]
ş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
[code language=”Csharp”]</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;[/code]
oyunumuz bitmiş oluyor.
Projeyi İndir: C# Oyun Örnek Jetman



