17 Haziran 2020 Çarşamba

Paint Trek İnceleme [15-07-2014]

PAINT TREK İNCELEME


Paint Trek klasik bir 2D shooter yerli oyunumuz olup karşınıza çıkan düşmanları yok ederek bölümleri bitirmeye çalışıyorsunuz. Özellikle bölüm sonu canavarlarını(1) öldürmek sizleri epey uğraştıracak gibi görünüyor. Oyunumuzda kontrolümüze verilen gemi ile karşımıza çıkan silah paketleri ve elmaslar ile düşmanlarımızı yok ediyoruz.Duruma göre düşmanlardan sıyrılıp kaçmak daha mantıklı olabilir.(2)
Oyun içi kullanabileceğimiz değişik silah sistemleri ve elmaslar var.Topladığınız elmaslar renklerine göre geminizin ateş  gücüne katkıda bulunuyorlar.Örneğin ,siyah elmas kritik atış yaptırarak yüksek hasarlı saldırı yapmanızı  veya yeşil elmas ile düşmanlarınızı zehirleyerek yavaşlamalarını  sağlayabilirsiniz. (Toplanabilir malzemelerle ilgili bütün bilgiler oyunda Extra menüsünde  Items  kısmındadır). Elmasın verdiği etkinin süresi ekranın sol üstünde bulunan sağlık barımızın hemen altında görünmektedir.Örneğin power attack(kırmızı elmas) topladıysanız kırmızı kutucuklardan kullanım için kalan miktarı görebilirsiniz.Oyunda karşınıza çıkacak 19 değişik düşman ve her level için özel tasarlanmış bölüm sonu canavarlarını gene Extra menüsünün enemies kısmından inceleyebilirsiniz.
Oyunda ayrıca her bölüm için değişik arkaplan müziği düşünülmüştür. Ayrıca dinlemek isterseniz Extra Menusunde MusicMenusunden dilediğiniz parçayı oynatabilirsiniz.Oyunun müzikleri Şahin Meriç(3)’e aittir.
                Oyun iki değişik çözünürlük(4) ile karşımıza gelmektedir.Ayrıca telefon sürümü için kullanılan kontrolcü joystick i ekranın sağına ve soluna alma şansınada options menümüzde sahibiz.Böylece ekranın sol tarafında kullanıcının parmağından karakterini görememesi durumu giderilmiştir. (5). Oyuna girmeden önce Options/Controller kısmından  oyun için kontrol denemelerini yapabilirsiniz. Mobil versiyonunda ilk başta zorlayıcı bir oyun gibi gelebilir.Hareket kabiliyetleriniz artıkça ve oyun içi malzemeyi iyice tanıdıktan sonra oyunu beğeneceğinizi umuyorum.
                Oyun ile ilgili windows sürümü oynanış videosu örneği :

                Windows Phone Download :

(1)Boss,Bölüm Sonu Canavarı,Hesaplaşma J
(2)İlerleyen bölümlerde gelecek Comet ve Ufo isimli düşmanlardan pek sıyrılıp kaçabileceğinizi söyleyemiyeceğim.
(4)Oyun windows versiyonunda  800x600,1280x800 çözünürlüklerini desteklemektedir.Mobil versiyonunda normal screen ve large screen olarak adlandırılmıştır.
(5) Tabi ki benim favori kontrol tarafım soldur.Need for speed'te arabaları bile sol elle
kontrol edebiliyordum.Sağ el ile yönlendirmelerim yetersiz olmuştur hep

XNA 4.0 ile TextureUsage Hatası [20-03-2014]

XNA 4.0 ile birlikte TextureUsage Hatası

              Visual Studio 2008 ile geliştirdiğiniz XNA projesini VS 2010 Express for Windows Phone veya Visual Studio 2012 ve üstü sürümleri üzerinde çalıştırmayı denediğinizde karşılaşabileceğiniz bir hataya göz atacağız.(XNA sürümlerinden dolayı)
Ben oyunumda oyun içi sprite ların herhangi bir hasar aldıklarında yüzeylerinin beyaz olduğu bir sistem kullanıyorum.Bunun için kullandığım metot aşağıda ki gibi

                 public Texture2D MakeDamageTexture(Texture2D texture)
        {
            int pixelCount = texture.Width * texture.Height;
            Color[] pixels = new Color[pixelCount];
            texture.GetData<Color>(pixels);
            for (int i = 0; i < pixels.Length; i++)
            {
                byte offset = 200;
                byte r = (byte)Math.Min(pixels[i].R + offset, 255);
                byte g = (byte)Math.Min(pixels[i].R + offset, 255);
                byte b = (byte)Math.Min(pixels[i].R + offset, 255);
                pixels[i] = new Color(r, g, b, pixels[i].A);
            }

            Texture2D outTexture = new Texture2D(Globals.Graphics.GraphicsDevice, texture.Width, texture.Height, 1, TextureUsage.None, SurfaceFormat.Color);
            outTexture.SetData<Color>(pixels);
            return outTexture;
        }

             Burada yeni bir Texture2D nesnesi oluştururken XNA 3.1 ile yazdığımız kodda
Texture2D yapıcı fonksiyonu Texture2D(GraphicsDevice graphicsDevice,Int32 width,Int32 height,Int32 numberLevels,TextureUsage usage,SurfaceFormat format) şeklindedir.XNA 4.0 ile birlikte projemizi derlediğimizde VS  TextureUsage diye bir sınıfın olmadığını acaba bir şeyleri unutup unutmadığımızı sormaktadır.Çözüm olarak Texture2D sınıfının yeni yapıcı fonksiyonunu kullanarak hatadan sıyrılmayı başarıyoruz.

XNA 3.1 ile
Texture2D(GraphicsDevice graphicsDevice,Int32 width,Int32 height,Int32 numberLevels,TextureUsage usage,SurfaceFormat format)
XNA 4.0 ile
Texture2D(GraphicsDevice graphicsDevice,Int32 width,Int32 height,bool bipmap,SurfaceFormat format)
Eski Kod
Texture2D outTexture = new Texture2D(Globals.Graphics.GraphicsDevice, texture.Width, texture.Height, 1, TextureUsage.None, SurfaceFormat.Color);
Yeni kod

Texture2D outTexture = new Texture2D(Globals.Graphics.GraphicsDevice, texture.Width, texture.Height,false,SurfaceFormat.Color);


           Yalnız bu şekilde hatadan kurtuluyoruz fakat oyunum istediğim gibi çalışmıyor diyebilirim.Oyun içinde ki sprite lar hasar aldıklarında aşağıda ki gibi büyük beyaz kare şeklinde hasar dokusu çizdirilmekteydi.

 
Çözüm :
Eski Kod:
SpriteBatch.Begin( );
DrawFunction( );
SpriteBatch.End( );
Yeni Kod:
            SpriteBatch.Begin( SpriteSortMode.Deferred,BlendState.NonPremultiplied);
            DrawFunction( );
            SpriteBatch.End( );