Ana Menü
· Ana Sayfa
· Dosyalar
· Dökümanlar
· Forum
· Günün Resmi
· Haber Arşivi
· WWW Linkleri
· Üye Listesi

     Forumlar

 strncpy ve strncpy_s
 Konu adi : Borland c++ Builder ile Amiral Batti
 Rady10 - YerliOyun
 Kabusta Kaybolmak
 Konsol da programı bekletmek
 Oyun programlama icin hangi programlama dilli ?
 flash! şanlıurfa bilgisayar oyununda(no rapid)
 Sevgilim Olur musun?
 Directx'e başlamak isteyenler bi bakın
 PSP programlama
 Flash tan php
 Bilgisyr oyunu yapmam için üniverstde hangi bölüme girmeliym
 www.arshiv.gen.ms
 Cimg.h ilgilenenler icin
 müttefik oyunu

Konu Disi
 Emraah
 Yeni sitemiz açıldı
 Kalp krizi durumunda ne yapılmalı?
 Oyun sektöründe hangi görevde çalışmak isterdiniz?
 Takım arkadaşı sorunu
 msn de renklı nıck
 pc hata veriyor ! YARDIM!!
 Gülmek isteyenler Buraya
 İnanılmaz hl 2 modu görüntüsü
 Computer Languages History

[ Forumlara Git ]


Oyun Yapımı - 4 (Oyuncu Sınıfı ve Basit Çarpışma Kontrolleri))

(320 kelime)
(1277 okuma)   Yazdırılabilir Sayfa




4. Oyuncu Sınıfı ve Basit Çarpışma Kontrolleri:

Oyun yapımı döküman serisinin bu bölümünde bir oyuncu sınıfı yaratmayı ve basit biçimde oyuncu - oyuncu arasi ve oyuncu - oyun alanı arasındaki çarpışma kontrollerini yapmayı öğreneceğiz.

Oyuncu sınıfımızın ismi "Player" olacak. Player.h içerisindeki tanımları incelediğinizde göreceğiniz gibi bu sınıf oyunumuz için ön gördüğümüz hareket yönü, hız, sürtünme kuvveti, puan gibi oyuncu özelliklerini içermekte. Aynı zamanda bir ball nesnesi aracılığı ile oyuncunun görünümü nesne içerisinde kullanılmak üzere saklanmakta.

Player sınıfının bizim için en önemli yordamları updatePosition() ve hitToPlayer() yordamlarıdır. updatePosition() yordamı içerisinde o anki tuşa basılma durumlarına ve geçen zamana göre, yeni bir yön vektörü belirleniyor ve hız artışı sağlanarak oyuncu pozisyonu değiştiriliyor. Aynı şekilde eğer hiç bir tuşa basma durumu yok ise sürtünme kuvveti sabiti dikkate alınarak hız yavaşlatılıyor. Dışarıdan aldığımız dt değişkeni zamanlamayı gerçekleştirmemize ve böylelikle frame rate den bağımsız olarak çalışmaya olanak sağlıyor. hitToPlayer() yordamı ile oyuncu - oyuncu arasında oluşabilecek çarpışma durumu kontrol ediliyor. Bu bölümde uygulanması en kolay ve hızlı yöntem olan "bounding sphere" kullanılıyor. Teorik olarak oyuncuları meydana getiren küreler arasındaki uzaklık hesaplanıyor, eğer oyuncular birbirlerine yarıçaplarından daha yakın iseler çarpışma oluşmuş oluyor.

Arena sınıfına ise isOutside() isimli bir yordam eklendi. Bu yordam ile bir oyuncunun oyun alanı dışına çıkıp çıkmadığı test edilebiliyor. Test işleminde yine basitçe merkeze olan uzaklık hesaplanması ile sonuca gidiliyor. Oyun alanımız da çembere benzer bir yüzey olduğu için bu yöntem kolaylıkla kullanılabiliyor.

Programın ana yönetim kısmı olan main.cpp kütüğünde de özellikle yeni nesne işlevselliklerini kullanan bazı değişiklikler yaptık. Özellikle renderScene() yordamında bu değişiklikler göze çarpıyor. Oyuncu - oyuncu çarpışma kontrollerine göre oyuncu yönünü değiştirme ile ilgili işlemlerin yanı sıra, oyuncunun oyun alanı sınırları dışına çıkıp çıkmadığı kontrolü ve oyun alanını döndürme işlemi de bu yordama eklenmiş bulunuyor. Geçen örnekten farklı olarak bu sefer 2 oyuncumuz olduğu için tuşa basılma durumlarınıda her oyuncu için farklı değişkenlerde tutmayı da unutmadık.

Bu açıklamalar ile birlikte sitemizin "dosyalar/döküman ek" bölümünde yer alan oyun yapimi 4 proje dosyalarini indirip kodlari incelediğinizde birçok açıklama satırı ile karşılaşacaksınız. Bu açıklama satırları ile kodu incelediğiniz zaman herşeyi çok daha iyi anlayacağınızı düşünüyorum. Anlamadığınız herhangi birşey yada karşılaştığınız bir problem olursa bunu direk olarak forumlarımızda dile getirebilirsiniz. İyi çalışmalar.

M.Deniz Aydınoğlu :: 2002 ::


  

[ Geri Dön: Oyun Yapımı (Genel) | Bölümler İndeksi ]




Web site powered by PHP-Nuke
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.
Sayfa Üretimi: 0.035 Saniye