Çeviri : Yunus Kara (www.darkscythe.net)
|
Şimdi Başlayalım! |
|||||||||||
| Her zamanki gibi başlık dosyalarımızı ekliyor,ad uzayımızı belirtiyor ve kütüphane dosyamızı bağlıyoruz.
Bu örnekteki hedeflerimizden biri SceneNode'lardan birini klavye girdisi ile hareket ettirmek.
Burada hareket ettirmek istediğimiz SceneNode'a bir gösterici tanımlıyoruz.
Klavye,fare olayları ve görsel arabirim olaylarını işleyebilmek için "IEventReceiver" nesnesinden kalıtlayan bir nesneye ihtiyacımız var. Bu nesnede yineleme(override) yapılacak tek metod var oda "OnEvent". Bu metod motor tarafından herhangi bir olay olduğunda çağırılacak ve olaya göre belirlediğimiz işlemler yapılacaktır. Bu örnekte W ve S tuşlarını kullanarak SceneNode'lardan birini aşağı-yukarı hareket ettireceğiz.
Eğer W yada S tuşlarından birine basılırsa, SceneNode'un konumunu alıyor ve 'Y' koordinatını değiştiriyoruz.Böylece W'ya basınca nesne yukarı, S'ye basınca aşağı doğru hareket edecek.
Olay kotarıcımız hazır olduğunua göre "Device" nesnemizi ve hareket ettirmek istediğimiz SceneNode'u yaratıyoruz. Burada ayrıca diğer hareket ettirme yöntemlerinide göstermek için birkaç SceneNode daha ekleyeceğiz.
Klavye ile hareket ettireceğimiz Node'u yaratıyoruz. Burada motor içinde dahili bulunan bir küp(TestNode) ekliyoruz. Bu Node'u (0,0,30) konumuna yerleştirip daha düzgün gözükmesi için bir doku atıyoruz.
Şimdi bir "SceneNodeAnimator" tarafından hareket ettirilecek başka bir node yaratıyoruz. SceneNodeAnimator nesneleri herhangi bir Node'a iliştirilebilinir(mesh,billboard,light,camera). SceneNodeAnimator nesneleri bir nesnenin sadece pozisyonunu değil dokusunuda değiştirerek animasyon sağlayabilir. Yarattığımız yeni nesneye bir dairesel hareket('fly circle') animatörü ekliyoruz. Dikkat edeceğiniz gibi dairesel hareketin merkezi, klavye ile hareket ettireceğimiz nesne ile aynı ve hareketin çapıda 20 birim olarak verilmiş. Yani bu nesne klavye ile hareket ettireceğimiz nesnenin çevresinde dönecek.
SceneNodeAnimator'ların birbaşka hareketini göstermek için son SceneNode'umuzu ekliyoruz. Bu ilk örnekte eklediğimiz quake2 modeli ve ileri doğru uçuş('fly straight') animatörü ile iliştiriliyor.
Modelin düzgün gözükmesi(hiç ışık tanımlamadığımız için nesne siyah gözükecek) için ışığı iptal ediyoruz. Daha sonra
modelin animasyon döngüsünü belirliyoruz. Modeli 180 derece çevirip, animasyon hızınıda ayarladıktan sonra dokusunu atıyoruz.
Bu yarattığımız nesnelere bakabilmek ve ortamda gezinebilmek için bir FPS kamerası yaratıp, fare imlecini gizliyoruz.
Her şeyi ayarladık artık çizdirebiliriz. Ayrıca pencere başlığına saniyede çizilen kare sayısınıda yazdıracağız.
Hepsi bu. Derleyin ve izleyin. :)
|