Hoşgeldiniz: OyunYapimi.org
 
Ara
Konular
  Üye Olun!    
Ana Menü
 Ana Sayfa
 Anketler
 Dosyalar
 Dökümanlar
 Forum
 Haber Arşivi
 WWW Linkleri
 Üye Listesi

Forumlar
Forumlarda Arama
 
[ Ara ]
Son yazilanlar

free ebooks - 2004-05-16 14:47 free ebooks...
oyun yazmak için - 2004-05-15 11:13 oyun yazmak için...
Sinus dalgası - 2004-05-14 19:21 Sinus dalgası...
Demosu yakında... - 2004-05-06 15:11 Demosu yakında......
Depth Test - 2004-05-03 20:55 Depth Test...
forum mesajlarini duzenlemek - 2004-05-03 19:34 forum mesajlarini ...
Başka Programlara Erişmek - 2004-05-03 17:44 Başka Programlara ...
Güzel bir e-book bağlantısı.. - 2004-05-03 16:06 Güzel bir e-book b...
Okyanus Dalgasi - 2004-05-03 16:00 Okyanus Dalgasi...
3d Shoot em up - 2004-05-03 15:57 3d Shoot em up...
Esnek Güç - 2004-05-03 13:32 Esnek Güç...
UltimateGameProgramming.com - 2004-05-03 12:29 UltimateGameProgra...
Function Pointer Nedir ne ise yarar - 2004-05-03 01:35 Function Pointer N...


Konu Disi


LAMER - 2004-05-10 01:58 LAMER...
anasafa yok forum var - 2004-05-08 16:01 anasafa yok forum ...
Anasayfa Kapali  Fakat.. - 2004-05-06 15:05 Anasayfa Kapali F...
Texture Arşivi - 2004-05-03 01:39 Texture Arşivi...
Yeni Kitap: Elektronik Hobi - 2004-05-03 00:29 Yeni Kitap: Elektr...
3DTURK - 2004-05-02 23:27 3DTURK...
Online Oyun - 2004-05-02 19:27 Online Oyun...


Splatt Forum

Oyun Yapımı - 5 (Mayın ve Bonus Yerleştirilmesi ve Oyunun Amacına Karar Verme)

(319 kelime)
(573 okuma)   Yazdırılabilir Sayfa




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) | Dökümanlar İndeksi ]





Web site Engine's code is Copyright © 2002 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.