XNA ile oyun geliştirmeye başlamadan önce, ekrana nasıl çizim yapabileceğimizi öğrenmemiz gerekiyor.
Not : Buradan ileriye devam etmeden önce XNA - Başlangıç yazımı okumanızı tavsiye ederim.
Öncelikle, ihtiyacımız olacak iki görseli bilgisayarınıza kopyalamanız gerekiyor;
Solution Explorer‘da Content üzerine sağ tuşla tıklayarak ari.png ve fil.png dosyalarını projeye ekleyelim.
GameLoop.cs dosyamızda class seviyesinde Texture2D tipinde iki değişken oluşturalım;
Texture2D ArkaPlan; Texture2D Ari;</pre> Daha sonra bu değişkenlere resimleri yükleyeceğiz. Aynı yere bir tane de Rectangle tipinde değişken oluşturalım.
Rectangle OyunPencere;
Bu değişkene ekranımızın boyutlarını yüklüyor olacağız.
LoadContent() method’unda bu değişkenlerin değerlerini atayalım;
OyunPencere = new Rectangle(0, 0, graphics.GraphicsDevice.Viewport.Width, graphics.GraphicsDevice.Viewport.Height);
ArkaPlan = Content.Load<Texture2D>("fil");
Ari = Content.Load<Texture2D>("ari");GameLoop class’ının constructor‘ında oyunumuzun başlığını değiştirebiliriz;
public GameLoop()
{
this.Window.Title = "XNA - Oyun Temelleri";
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}Draw() method’unda resimlerin ekrana çizim işlerini yapacağız. Çizime işlemlerini Begin() ve End() methodları arasında yapmamız gerekiyor;
spriteBatch.Begin(SpriteBlendMode.AlphaBlend); spriteBatch.Draw(ArkaPlan, OyunPencere, Color.White); spriteBatch.Draw(Ari, Vector2D.Zero, Color.White); spriteBatch.End();
Bu durumda uygulamayı çalıştırırsak, karşımıza şöyle bir ekran gelir;
Şimdi arı resmini, klavye tuşlarını kullanarak ekranda hareket ettirelim. Öncelikle arı’nın ekrandaki konumunu tutan bir değişkene ihtiyacımız var, class seviyesindeki değişkenlere ekleyelim;
Vector2 Location = Vector2.Zero;
Draw() methodunda ari resmini çizdiğimiz satırı güncelleyelim;
spriteBatch.Draw(Ari, Location, Color.White);
Son olarak Update() method’umuzu güncelleyelim;
protected override void Update(GameTime gameTime)
{
KeyboardState ks = Keyboard.GetState();
if (ks.IsKeyDown(Keys.Escape))
this.Exit();
if (ks.IsKeyDown(Keys.Up))
Location.Y -= 3;
if (ks.IsKeyDown(Keys.Down))
Location.Y += 3;
if (ks.IsKeyDown(Keys.Left))
Location.X -= 3;
if (ks.IsKeyDown(Keys.Right))
Location.X += 3;
base.Update(gameTime);
}
Gördüğünüz gibi, klavyede o anda basılı tuşları *Keyboard.GetState()* ile *ks* değişkenine yüklüyoruz, sonra basit karşılaştırmalar ile *Location* değişkenimizin *X* ve *Y* değerlerini değiştiriyoruz.
*Draw()* method'unda ari'yi çizeceğimiz yer olarak *Location* değişkenini verdiğimiz için, klavyeyi kullanarak ari'yi hareket ettirebildiğimizi görüyoruz.

Oyunun kaynak kodlarını buradan indirebilirsiniz.
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484