Özel Bir Model Sınıfı Oluşturmak

Bir önceki yazıda bir modelin nasıl çizdirileceğini görmüştük. Ancak bu işlemi bir model daha çizdirmek istesek yeniden mi yapamız gerekecek? Eğer oyunumuzda yüz tane model olsaydı yüz kere mi yazacaktık? Bu sorunları çözmek için bu yazıda çizim için gereken kodları tutan CModel adında jenerik bir sınıf yazmayı inceleyeceğiz. Bu sınıf modelin yüklenmesi için gereken dönüşümleri hesaplayıp, matrisleri ve efektleri ayarlayıp bize sunacak. Bu modeli daha sonra eklemek isteyeceğimiz özel efektler, dokuların yönetilmesi gibi durumlar için de kullanacağız. Ancak öncelikle modelin pozisyon (position), dönme (rotation), ölçekleme (scale), çizim için gerekli matrisler (world, view, projection) ve efektler (effect) gibi özellikleri ile başlayalım.

Artık CModel sınıfını kullanarak oyun kodumuzu daha sade hale getirebiliriz. Burada dikkat edilirse sınıfın yapıcı methodu (constructor) beş adet parametre almaktadır. Bunlar sırasıyla yüklemek istediğimiz model, modelin konumu, dönme miktarı, ölçeği ve ekran kartı bilgisidir. Draw() methodunda ise görünüm ve projeksiyon matrisleri parametre olarak istenmektedir. Bu matrisleri oyunu yazdığımız Game1 sınıfında hesaplayacağız. Bu işlemleri yaparken model dosyamızdan birden fazla örnek alıp kullanım kolaylığını da görelim.