![](themes/DeepBlue/images/pixel.gif) |
Ana Menü | ![](themes/DeepBlue/images/pixel.gif) |
Forumlar | ![](themes/DeepBlue/images/pixel.gif) |
| ![](themes/DeepBlue/images/pixel.gif) |
Oyun Yapımı - 5 (Mayın ve Bonus Yerleştirilmesi ve Oyunun Amacına Karar Verme)
(319 kelime) (1161 okuma) ![Yazdırılabilir Sayfa](images/print.gif)
5. Mayın ve Bonus Yerleştirilmesi ve Oyunun Amacına Karar Verme:
Bu bölümde oyunumuzun amacına karar veriyoruz (biraz geç
mi kaldık acaba.. :) ). Oyunumuzda 2 oyuncumuz vardı ve bunları birbirine
ve oyun alanının kenarlarına çarptırdığımızda sekme hareketi sağlıyorduk.
İsterseniz oyun alanımızda çarpılmaması gereken bölgeler belirleyelim
(mayınlar), ve aynı zamanda alınabilecek ve alındığında bize puan kazandıracak
ekstra cisimler koyalım (bonus). Artık oyunumuzun bir amacı var. En çok
ekstra toplayan ve dolayısı ile en çok puan elde eden oyuncu oyunu
kazanır.
İlk olarak Bonus ve Mine isimli sınıfları projemize ekledik. Bu iki sınıfta
ortak olarak Ball sınıfından türemekteler. Yalnız çizim işlemi
sırasında render() yordamını değiştirerek kendilerine özgü şekiller
çiziyorlar. Ayrıca Bonus sınıfı update() yordamı ile kendi iç
değişkenini devamlı günlüyor. Bu sayede render() sırasında bonuslar
hareketli bir biçimde kendilerini çizdiriyorlar.
Geçen örneğimizde çarpışma kontrolleri ile ilgili yordamları
direk olarak Player sınıfı içerisine koymuştuk. Bu sefer daha değişik
bir yaklaşım izliyerek isHit() yordamını Entity sınıfında gerçekleştiriyoruz.
Böylelikle Player, Mine ve Bonus sınıflarının tümü içerisinde
isHit() yordami kullanılabiliyor. Player sınıfı içinde bulunan ball
nesnesi ile isHit() işlevselliğine erişebiliyor.
Ana program döngümüzde renderScene() yordamı içerisinde
yer alan çarpışma kontrolü ile ilgili kısımları bu saydığımız
değişikliğe uygun olarak güncelledik. Aynı zamanda mayına çarpılınca
bir sekme hareketi gerçekleştirilmesini ve bonusların üzerinden
geçilince (çarpılınca) bonusun ortadan kaldırılmasını (bonus.setVisible(false))
ve oyuncu puanının arttırılması sağladık. Ayrıca oyuna bir değişiklik getirmek
amacı ile her puan alınışında oyuncu büyüklüğünü
bir miktar da değiştiriyoruz.
Henüz oyunumuzun bir bitiş koşulu yok. ESC tuşu ile oyundan çıkıldığında
stdout.txt isimli bir kütük oluştutulup içine oyuncu puanları
yazılıyor. İlerleyen derslerimizde oyunumuza doku kaplamaları ile biraz renk
getirip, anlamlı bitiş ve başlangıç bölümleri ekleyeceğiz.
Sitemizin "Dosyalar/Döküman ek dosyaları" bölümünde
yer alan Oyun Yapımı - 5 isimli kütük içerisinde her zamanki
gibi proje kodunu ve çalıştırılabilir halini bulabilirsiniz. Kod içerisinde
bulunan açıklama satırları ile projede gelinen kısmı kısa zamanda kavrayacağınızı
düşünüyorum. İyi çalışmalar.
Deniz Aydınoğlu :: 2002 ::
|
[ Geri Dön: Oyun Yapımı (Genel) | Bölümler İndeksi ] |
|
| ![](themes/DeepBlue/images/pixel.gif)
|