25 Haziran 2008 Çarşamba

Flash'ta Oyun programlama - Pdf Dökümanları



Sanırım 2D Oyunların en iyileri flash'ta geliştiriliyor. Animasyonları ve grafikleri siz hazırlıyorsunuz. Gerisini Action Script tamamlıyor. Tabi bu kadar da kolay değil,
fizik hesaplamaları buradada canımızı sıkabiliyor ...

İşte sizin için internetten araştırıp bulduğum 2 süper pdf dökümanı:

1.Dosya (.pdf)
2.Dosya (.pdf)

5 Haziran 2008 Perşembe

XNA ile Healt Bar yapımı



Genelde aksiyon oyunlarında gördüğümüz bu healt(can,sağlık nyse..) bar yine iki parçalı bir resmin belirli kısımlarının gösterilmesi ile yapılıyor. Bu da source(kaynak) rectangle ile sağlanıyor. Şimdi kodları görelim...

//İlk önce işimizi kolaylaştırmak için bir Sprite sınıfı yazıyoruz.



Şimdi Oyun kodlarına geçelim.





buradan resmi kopyalayın ve XNA Game Studio'da yeni bir Proje açın Content Manager ile resmi yükleyin ve kodları deneyin. Bu küçük bir uygulama fakat yararlı da...
"KOŞMADAN ÖNCE YÜRÜMEYİ ÖĞRENMEK GEREK" :: (:Tom millerin oyun prog. kitabından:)

yazar: CANER DEMİRCİ ((gerisi de var inşallah...))

2 Haziran 2008 Pazartesi

XNA'da Texture Yüklemek ve Render Etmek

Visual Studio açın ve bir XNA Game Studio projesi yaratın. Solution Sekmesindeki
ağaç yapıda "Content" e sağ tıklayıp projenize bir resim dosyası ekleyin.
(Benim tercihim .png formatı) ve daha sonra "Properties" sekmesinde bu dosyanın özelliklerinden "Asset Name" i "deneme" olarak değiştirin. Böylece Xna Game Studio bu 
resim dosyasını .XNB formatına dönüştürecek.

ve sıra kodlarda :

//İlk olarak yükleyeceğimiz resmi ekranda göstermek için
//bir SpriteBatch tanımlıyoruz ...
private SpriteBatch spriteBatch;

//Sonra Texture2D sınıfından texturemizi tanımlıyoruz
private Texture2D myTexture;

//Texturemizin ekrandaki Pozisyonu (Vector2 sınıfı ile)
private Vector2 Position;

//Texturemizin ne kadar Scale edileceği (yani büyültüp küçültme oranı)
// 1 verildiğinde eni ile boyunu 1 ile çarpar yani uzunluğu ve genişliğinde
// bir değişme olmaz
private float Scale; 

//Origin değeri yani merkez noktası
private Vector2 Origin;

//Şimdide Rotation yani döndürme açısı (orjine e göre)
private float Rotation;

//Texturemizin ekstra rengi yani White = Beyaz verilirse renk değişmez
private Color color;

//Texturemizin SourceRectangle değeri yani resmin tam olarak texturenin ne kadar
//bir kısmının gösterileceğini belirle
//Source Rectangle => X, Y, Width, Height değerlerini alır.
//X, Y den başlayark Width ve Height değerleri boyunca devam eder
private Rectangle Source;

//Yüklediğimiz resmin asset name i
private string AssetName = "deneme";


Nesnelerimizi tanımladık şimdi yapacağımız işlemler:
1-Initialize() -> Oyun hazırlanırken ilk değerlerimizi veriyoruz
2-LoadContent() -> bu metod ile texture nesnemizi yükleyeceğiz
3-Draw() -> bu metod ile texture nesnemizi yani resmimizi ekranda göstereceğiz

protected override void Initialize()
{
  this.Scale = 1.0f;
  this.Position = new Vector2(100, 100);
  this.Origin = Vector2.Zero;
  this.color = Color.White;
  this.Rotation = 0f;  

  base.Initialize();
}

protected override void LoadContent()
{
  spriteBatch = new SpriteBatch(GraphicsDevice);
  myTexture = Content.Load(AssetName);
  
  //Bu değeri Initialize metodunda veremedik çünkü texture uzunluk ve yükseklik
  //değerini yüklenen resim den alacağımız için ve resim LoadContent() metodunda
  //yüklendiği için şimdi veriyoruz.
  this.Source = new Rectangle(0, 0, this.myTexture.Width, this.myTexture.Height);
}

protected override void Draw()
{
  graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

  //SpriteBatch nesnemizin render işlemine start veriyoruz
  spriteBatch.Begin();

  //Ve Texture render ediliyor.
  spriteBatch.Draw(myTexture, this.Position, this.Source, this.Color, this.Rotation,
    this.Origin, this.Scale, SpriteEffects.None, 0);

  //SpriteBatch nesnemizin render işlemine son veriyoruz
  spriteBatch.End();
}



kodların hepsini vermedim sadece gerekli blokları yazdım. Çünkü böylesi sizin için daha iyi XNA Game Studio'u açtığınızda karşınıza hazır kodlar gelecektir. Bütün kodu yümüyle kopyalayıp yazmak öğrenme açısından iyi değildir. Kodları yerine kendiniz ilk önceleri bakarak yazın ve "RUn" komutunu verip çalıştırın. Böylece kodu deneyip ne yapabildiğinizi görürsünüz. Zaten sonraları da değiştirmek ve geliştirmek isteyeceksiniz bu arada da belki yüzlerce hata mesajı alacaksınız ama sonunda anlayarak, deneyerek, görerek öğrenmiş olacaksınız.

yazar: Caner DEMİRCİ  (( devamı gelecek ... ))