DERS-1

XNA'ya Giriş

Game1.cs Namespace

•using Microsoft.Xna.Framework;
Bir oyunda gerekebilecek en genel yapıları sunar. Oyun döngüsü, zamanlamalar, pozisyonlar, boyutlar...
•using Microsoft.Xna.Framework.Audio;
Oyunlarda çeşitli müzikler veya ses efektleri yönetmemizi sağlar.
•using Microsoft.Xna.Framework.Content;
Content Pipeline’ da bulunan özellikleri yönetmeyi sağlar. İçerik yönetimi ve kaynak yönetimi gibi konularla ilgili sınıflar bulunur.
•using Microsoft.Xna.Framework.GamerServices;
Adından da anlaşılabileceği üzere, bu namespace içinde oyuncular ile ilgili bir çok çeşitli sınıf yer almaktadır.Bu servisler direk olarak kullanıcı ile iletişim icinde bulunurlar.
•using Microsoft.Xna.Framework.Net;
Oyunlarımıza network altyapısını sağlayacak olan sınıfları içeren namespace’imiz.using 
Microsoft.Xna.Framework.Graphics;
Grafiksel işlemleri gerçekleştirip yönetebileceğiniz sınıfları bünyesinde bulundurur. Ekrana bir resim veya 3D bir obje koymaktan tutunda, ekran kartı özelliklerine erişmeye kadar bir cok yeteneği bizlere sunar.
using Microsoft.Xna.Framework.Input; 
Klavye, mouse veya XBOX için gamepad gibi giriş birimlerini yönetebileceğimiz sınıfların toplandıgı namespace’dir. Klavyede herhangi bir anda hangi tuşa basılmış veya mouse’un pozisyonu nerede gibi bircok durum üzerinde kontrole sahip oluyoruz.
 using Microsoft.Xna.Framework.Media;
Çeşitli MediaList’ler yani, playlist, resim albümü gibi şeyler oluşturabileceğimiz koleksiyonlara sahiptir.
 using Microsoft.Xna.Framework.Storage;
Dosyaları okumak ve dosyalara yazma işlemi yapmak icin gerekli sınıflara sahip olan namespace.

Game1.cs Metotları

public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}

•Program genelindeki verilerin başlangıc degerlerini set etmek için kullanıldığını söyleyebiliriz. Nitekim burada da, ekran kartına erişebileceğimiz sınıftan bir nesne yaratılmıştır. Ve içeriklerin bulundugu kaynak dosya gösterilmiştir.
protected override void Initialize()
{
base.Initialize();
}

•Initialize() methodu ise oyun icinde, oyun ile ilgili başlangıc değerlerinin set edildiği bölüm olarak tanımlanabilir. Initialize aşaması oyuna başlangıc için gereken hazırlık aşaması olarak tanımlanabilir.•protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
}

•LoadContent ’i, desktop uygulamalarındaki Form_Load ’a benzetebilirsiniz. Yani oyun ilk çalıştığı anda çalışır. Oyun içinde kullanılacak nesnelerin yüklenmesi için kullanılabilir.
protected override void UnloadContent()
{

}

•UnloadContent, uygulama kapandıgı anda çalışan methodumuzdur. Burada mesela oyuncu oyunu kaydetmeden cıkmaya çalışırsa, ona oyunu kaydetmek isteyip istemediğini sorabileceğimiz bir sürec yazabiliriz.  
protected override void Update(GameTime gameTime)
{
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();

base.Update(gameTime);
}

•Update, methodu oyunun çalışmaya başladıgı andan itibaren sürekli çalışan bir methodudur. Bu yüzden method içinde, oyun genelindeki bir çok kontrol ve yönetim işlemini kontrol edebiliriz.Örnek vermek gerekirse hareket eden iki cismin çarpısıp çarpışmadıgı bu method içinde rahatlıkla kontrol edebiliriz.  
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
base.Draw(gameTime);
}

•Ekranda bir oyun nesnesini gösterebilmek için teorik olarak bunun ekrana çizilmesi gerekir. Draw methoduda bu çizim işlemleri gerçekleştirmekten sorumludur. Ayrıca, Update gibi sürekli çalışan bir methoddur. 

Hiç yorum yok:

Yorum Gönder