Tetris oyunumuza ait temel tüm işlemleri daha önceki makalelerde ayrıntılı bir şekilde anlattık. Şimdi oyunumuza değişik özellikler ekleyelim. Oyunumuza neler eklenebilir.
1. Alınan puanların kişi adıyla kaydedildiği bir en iyi 10 gibi bir skor tablosu eklenebilir.
2. Hakkında diye bir tuş eklenerek programı hazırlayan hakkında bilgi verilebilir.
3. Yardım diye bir tuş eklenerek oyunun nasıl oynandığına ait bilgi verilebilir.
4. Ses dosyaları eklenebilir.
5. Tetris şekillerine daha değişik görünümler verilebilir. Tetris panosu resimli veya desenli olabilir.
Bunları sondan başlayarak oyunumuza eklemeye çalışalım.
Adım 1: Bilgisayarınızda yüklü herhangi bir resim editörü aracılığıyla 25x25 ebadında 7 adet jpeg uzantılı resim dosyası oluşturalım. Bunun için en basit paint programını kullanabilirsiniz. Resim dosyalarının isimlerini tet1.jpeg, tet2.jpeg,...,tet7.jpeg olarak belirleyelim. Ben burada sizler için resimler belirledim. Bunları da kullanabilirsiniz.
Adım 2: Kendiniz hazırlayamıyorsanız internette güzel tetris şekilleri bulup bunu yine paint programında 25*25 piksellik yapıp jpeg formatında kayıt edin.
Adım 3: Projeye images isminde bir klasör ekleyelim. Hazırladığımız resim dosyalarını bu klasörün içine kopyalayalım.
Adım 4: Sonra 12 tane güzel manzara resimleri bulup (internetten veya başka yerden) bunları da yine paint programında 263 * 523 piksel olacak şekilde yine jpeg uzantılı olarak aynı klasörde saklayalım. Resimlerin bu piksellerde olması panoyu tam doldurması içindir. Bu resimleri de resim1.jpeg, resim2.jpeg, ..., resim12.jpeg şeklinde adlandıralım.
Adım 5: Projeye SekilGoster() isminde bir metot ekleyelim. Bu metot yardımıyla eklediğimiz tetris şekillerini burada göstereceğiz.
void SekilGoter()
{
yol = Application.StartupPath.Replace("bin\\Debug", "Images\\Tet");
for (int i = 0; i < 4; i++)
{
kare[aktifSekil[i]].Visible = true;
kare[aktifSekil[i]].BackColor = renk;
kare[aktifSekil[i]].Image = Image.FromFile(yol + sekilNo + ".jpeg");
}
}
Adım 6: SekilGoster metodu tanımlama işlemini bitirdik. Şimdi bu metodu programda nerede çağıracağımızı belirleyelim.
1. timer olayında
if (devamet == true)
{
for (int i = 0; i < 4; i++)
{
kare[aktifSekil[i]].Visible = false;
aktifSekil[i] = aktifSekil[i] + 10;
//kare[aktifSekil[i]].Visible = true;
//kare[aktifSekil[i]].BackColor = renk;
}
SekilGoter();
}
else
Burada for döngüsü içindeki 3 ve dördüncü satırları açıklama satırı yapıyoruz. else komutundan önce SekilGoster metodunu yazıyoruz. Böylece for döngüsü içinde önce eski şekil silinirken yeni şeklin indis değerleri (aktifŞkil(i)) atanır. Döngüden çıkılınca da yeni şeklimizi SekilGoster() metodunu çağırarak oluşturmuş oluruz.
2. SekilSec metodunda en altta yer alan for döngüsünü açıklama satırı haline getirip altına SekilGoster metodunu yazıyoruz.
//for (int i = 0; i < 4; i++)
//{
// kare[aktifSekil[i]].Visible = true;
// kare[aktifSekil[i]].BackColor = renk;
//}
SekilGoter();
3. KeyDown olayında en alt taraftaki for döngüsünü açıklama satırı haline getirip yerine SekilGoster metodunu yazıyoruz.
//for (int i = 0; i < 4; i++)
//{
// kare[aktifSekil[i]].Visible = true;
// kare[aktifSekil[i]].BackColor = renk;
//}
SekilGoter();
Adım 7: Şimdi panoya resimleri ekleyelim.
1. TetrisKontrol yordamındaki switch case döngüsünün altındaki
seviye = (int)(puan / 2500);
seviye += 1;
if (seviye > 12)
{
timer1.Interval = 15;
}
lblSeviye.Text = "SEVİYE : " + seviye;
lblPuan.Text = "PUAN : " + puan;
yol = Application.StartupPath.Replace("bin\\Debug", "Images\\Resim");
pano.Image = Image.FromFile(yol + seviye + ".jpeg");
2.panoTemizle metodunu da şu şekilde değiştirelim;
void panoTemizle()
{
yol = Application.StartupPath.Replace("bin\\Debug", "Images\\");
pano.Image = Image.FromFile(yol + "Resim1.jpeg");
for (int i = 1; i < 201; i++)
{
kare[i].BackColor = Color.Cyan;
kare[i].Visible = false;
}
puan = 0;
seviye = 1;
lblSeviye.Text = "SEVİYE : " + seviye;
lblPuan.Text = "PUAN : " + puan;
timer1.Interval = 1000;
}
Hepsi bu kadar arkadaşlar. Şimdi programı kaydedin ve çalıştırın. Bu kadar uğraştan sonra bu görselliğin tadını çıkarın. Bir sonraki makalede görüşmek üzere.
Uygulamayı buradan indirebilirsiniz.
|