HERSEY BURDA

HERSEYİ BULABİLDECEĞİN TEK ADRES
 
AnasayfaTakvimSSSAramaÜye ListesiKullanıcı GruplarıKayıt OlGiriş yap
Arama
 
 

Sonuç :
 
Rechercher çıkıntı araştırma
En son konular
» free slot machines win cash
Çarş. Ağus. 03, 2011 3:57 am tarafından Misafir

» watch naruto hentai watch naruto hentai free
Çarş. Ağus. 03, 2011 3:52 am tarafından Misafir

» major fish oil
Salı Ağus. 02, 2011 10:26 pm tarafından Misafir

» hentai about hentai academy
Salı Ağus. 02, 2011 10:10 am tarafından Misafir

» гинекология ответы
Ptsi Ağus. 01, 2011 9:18 am tarafından Misafir

» x-Hack hack you
Ptsi Ağus. 01, 2011 8:00 am tarafından Misafir

» When the first Whirlpool Duet album was released in December 2001
Ptsi Ağus. 01, 2011 3:05 am tarafından Misafir

» women at work hentai online women at work hentai stream
Ptsi Ağus. 01, 2011 2:56 am tarafından Misafir

» facebook likes xb
Paz Tem. 31, 2011 9:22 am tarafından Misafir

Tarıyıcı
 Kapı
 Indeks
 Üye Listesi
 Profil
 SSS
 Arama
Forum
HABERLER
Fikri Türkel köşe yazıları

Paylaş | 
 

 Java'da Oyun Programlama

Aşağa gitmek 
YazarMesaj
Admin
Admin


Mesaj Sayısı : 3361
KULLANICI PUANLARI : 9918
Kayıt tarihi : 16/05/10

MesajKonu: Java'da Oyun Programlama   Çarş. Haz. 02, 2010 2:13 pm

Java'da Oyun Programlama

Hemen hemen her programcı oyun geliştirmek ister. Çünkü oyun yapmak ve kendi yaptığın oyunu oynamak çok zevklidir. Oyun oynamayı sevmememe rağmen oyun yapmak istemişimdir. Kendi yaptığınız oyunlarla oynamak daha zevkli oluyor. Belki kendi yaptığım oyunlarla toplam oynama sürem diğer oyunları oynama süremden daha fazladır.
Javayı az çok öğrendiğim zamanlarda oyun yapmaya çalışmamıştım. Çünkü oyun yapmanın normal programları yapmaktan daha zor olduğunu düşünüyordum. Ama hiçte öyle değilmiş. Oyunlar çok çeşitli olmasına rağmen kullandıkları teknik alt yapı hep aynı. araba yarışı,dövüş oyunu,bowling,penaltı atmaca oyunu vs.. hep aynı teknikler ile yapılıyor. Tek değişen oyunun mantığı.
Eğer aşağıdaki olayları gerçekleştirebiliyorsanız oyun yapmanız için gerekli alt yapınız hazır demektir. Yani un ve şeker var sıra helvaya gelmiş demektir.
Bir resmi ekranda göstermek.
Bir bölgeye geometrik şekil çizebilmek. (Dikdörtgen,Daire,Çizgi vs..)
İki şeklin birbirinin üzerinde olup olmadığını anlayabilmek. (Birbiri ile kesişiyor mu kesişmiyor mu?)
Kullanıcının bastığı klavye tuşlarını ve fare hareketlerini anlayabilmek.
Belirli aralıklarla tüm her şeyi yeni baştan çizebilmek. (Oyunlar sürekli ekran yeniden çizilerek yapılır).
Eğer nesne yönelik programlamayı biliyorsanız ve yukarıdaki olayları gerçekleştirebiliyorsanız artık oyun yapabilirsiniz demektir. Ancak şunu hemen belirteyim. Oyun programlamak için nesneye yönelik programlamayı bilmeniz şart gibi. Çünkü class yaratmadan oyun yapmak çok zordur. Oyundaki her eleman bir class'ın nesnesi olmalı.
Oyundaki Nesneler

2D oyunlarda nesneleri ikiye ayırabiliriz. Birinci nesneler oyunun ortamını oluştururlar. Bu nesneler değişmeyen konumlarda dururlar. Örneğin yarış oyununda pist, futbol oyununda saha vs.. oyunun ortamını oluşturur. Diğer nesneler ise bu ortamın üstünde hareket eden nesnelerdir. Örneğin yarış oyununda hareket eden arabalar veya futbol oyunundaki futbolcular.
Oyunun ortamı açısından da oyunlar iki çeşite ayrılabilir. Bazı oyunlarda ortam her zaman sabittir ve ekrana sığar. Bazı oyunlarda ise tüm ortam ekrana sığmaz. Öndeki nesneler hareket ettikçe ortam da hareket eder. Her zaman çevrenin bir kısmı görünür. Yarış oyununda her zaman böyledir. Yarış arabaları hareket ettikçe yol değişir.
Ön kısımda hareket eden nesneler ise kullanıcı tarafından hareketleri kontrol edilen nesneler ve kendi kendine hareket eden nesnelerden oluşur. Yarış oyununda kullanıcının arabasının yeri klavye veya fare ile değiştirilebilir. Diğer yarış arabaları ise kendi kendine hareket etmektedirler. Bu nedenle kendi kendine hareket eden nesnelere belirli bir yörünge veya zeka vermeniz gerekir.
Oyun Ortamı

Oyunların ortamı genellikle belirli resimlerin değişik yerlere döşenmesinden oluşur. Örneğin yarış oyunlarında sağda solda görülen ağaçlar için hep aynı ağaç resmi kullanılır. Veya bir deniz görüntüsü aynı resmin belirli kere tekrarı ile oluşturulur. Bu nedenle tüm ortam ızgara şeklinde hücrelere bölünür. Örneğin bir oyun ortamı 16*16 lık bölümlere ayrılabilir. Ortam için genellikle iki boyutlu bir dizi tutulur. Bu dizi int değerler tutar. Bu int değerler o hücrede hangi resmin görüleceği bilgisidir. Genellikle 0 değeri o hücrede bir resim olmadığı zaman kullanılır. Çoğu oyunda tüm ortam ekrana sığmaz. Sadece ortamın bir kısmı görünür. Bu nedenle tüm ortamı çizmek yerine ekranda gözüken kısım tekrar çizilir. Oyun yeniden çizileceği zaman önce oyunun ortamı çizilir. Daha sonra öndeki diğer nesnelere çizilir.
Öndeki Nesneler

Ortamın üzerinde hareket eden nesneler bir vector'de (veya ArrayList'te) tutulabilir. Bu nesnelerin hepsinin kendisine ait bir origin'i , bir genişlik ve yüksekliği bulunmalıdır. Ve bu nesnelerin kendisini çizebilme yeteneği olmalıdır. Böylece tüm oyun yeniden çizlirken bu nesneler de kendilerini ekrana çizerler. Sonuç olarak önce ortam çizilir. Daha sonra nesnelerin tutulduğu vector'deki nesneler sırasıyla çizilir. Ancak genelikle nesneler z-index denilen bir değişken tutarlar. Bu değişken hangisinin daha arkada hangisinin daha önde olacağına karar vermek içindir. Bu nedenle nesneler çiziliriken önce z-index değeri küçük olanlar çizilir.
Bazı nesneler tek bir resimden oluşmaz. Birden fazla resim içerebilir. Bu resimler peşpeşe çizilirek bir animasyon görüntüsü elde edilebilir. Örneğin yürüyen bir insan nesnesi için üç resim olabilir. Bunun için şu yapılabilir. Nesne bu farklı resimlerin bir dizisini tutar. Her çizimde hangi resmi çizdiğinin index'ini tutar. Örneğin ilk çizimde 0. index'li resmi çizer ve index'i bir arttırır. Bir dahaki çizimde diğer index'li resim çizilir. Eğer dizinin sonuna gelinmişse index yeniden 0 yapılır. Bu şekilde bir animasyon görüntüsü elde edilir.
Son Söz

Görüldüğü gibi oyun yapmak için gerekli teknik bilgi fazla değil. Java'yı az bilen bir kişi bile bir oyun yapmak gerekli bilgiye sahiptir. Ancak iyi oyun yapabilmesi için nesne yönelimli programlamayı bilmesi şart. Eğer nesne yönelik programlamayı da anlamışsa oyun yapması için önünde hiç bir engel yok demektir.
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör http://dessas.yetkinforum.com
 
Java'da Oyun Programlama
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
HERSEY BURDA :: OYUN PROGRAMLAMA :: OYUN PROGRAMLAMA-
Buraya geçin: