Yazýlarýmý Daha Kolay Takip Etmek Ýçin Týklayýn!

XNA’de İKİ BOYUTLU NESNE ÇİZİMİ – 2

yazan: 8/1/2008 8:25:00 AM

 

 Önceki yazımda nesnelerimizi oyun ekranında 2B olarak temsil etmek için gerekli olabilecek bazı metotlardan bahsetmiştim. Bu yazımda da bu metotları kullanarak ekranda bir temsil oluşturmayı anlatmaya çalışacağım.

Öncelikle işin mantığını sıralayalım:

1-     Nesnelerimizin ihtiycı doğrultusunda sınıflar hazırlıyoruz; örneğin durağan bir nesne için konum ve desen gibi iki değişken yeterli olabilecekken; hareket eden bir nesne için hız, yön, hareketin başlama konumu gibi özelliklere ihtiyaç duyarız.

2-     Sınıflarımızın yapıcı metotlarında (Constructor) değişkenlerimizi ayarladık,

3-     Game1.cs’de nesnemizi temsil edecek değişkenler oluşturduk.

4-     LoadContent() metodu içinde nesnemize başlangıç değerlerini yükledik.

5-     Update() metodu içinde, nesnemizin etkileşimini sağlayacak işlemleri yaptık. Gerektiğinde if deyimleri ile nesnemize yeni tepkiler verdirdik. Bu metot saniyede 50-60(değişebilir) kez tekrarlanacak buna dikkat ettik.

6-     Draw() metodunda spritebatch nesnesinin metotlarıyla çizim işlemini gerçekleştirdik. Bu da Update metodu gibi saniyede onlarca kez tekrarlanacak.

Not: XNA GS’nin bize hazırladığı metotların içini doldurmak yerine ufak metotlar tanımlayarak bu kısımların içinde çağırırsak daha bir güzel olur kodumuz ama bu yazıda buna dikkat etmeyeceğim, siz edin.

Bu yazımın konusu olarak hareketsiz nesneleri çizmeyi seçtiğim için ekranda haket etmeyen bir nesne çizeceğiz. Daha sonra hareket eden nesnenin nasıl çizileceğini ve kullanıcı girişinden nasıl etkileneceğini yazacağım.

Şimdi yavaş yavaş başlayalım;

1. Adım:

CizilecekNesne.cs:

        public Texture2D deseni;

        public Vector2 konumu;

şeklinde bazı nesne özellikleri tanımladık.

2. Adım:

CizilecekNesne.cs:

        public CizilecekNesne (Texture2D yüklüDesen)

        {

            konumu = Vector2.Zero;

            deseni = yüklüDesen;

        }

3. Adım:

            Game1.cs

               //arkaplanımız için bu değişkeni tanımladık.

        Texture2D arkaPlan;

         //bu değişken de oyunun ekran alanını tutacak.

        Rectangle ekranAlanı;

        //nesnemiz

        GameObject nesne;

4. Adım:

            Game1.cs – LoadContent methodu:

            arkaPlan = Content.Load<Texture2D>("arkaplan");

            //bunun için önceden Content klasörüne bu isimle bir resim koymuş

//olmamız gerekir

 

 

nesne = new CizilecekNesne(Content.Load<Texture2D> ("nesneFoto"));

nesne.konumu = new Vector2(

graphics.GraphicsDevice.Viewport.Width/2,

graphics.GraphicsDevice.Viewport.Height/2);

           

            ekranAlanı = new Rectangle(0, 0,

                graphics.GraphicsDevice.Viewport.Width,

                graphics.GraphicsDevice.Viewport.Height);

           

 burada arkaplanımızı nesnemizi ve ekran alanımızın temsillerini hazırladık.

5. Adım:

            Game1.cs – Draw metodu:

            spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

      spriteBatch.Draw(arkaPlan, ekranAlanı, Color.White);

/* ekran alanı büyüklüğünde, arkaPlan desenine sahip bir resmi beyaz ışıkla döşedik. Dolayısıyla bu bizim arkaPlanımız oldu.*/

 

      spriteBatch.Draw(nesne.deseni, nesne.konumu, Color.White);

      // Burada da nesnemizi ekrana çizdirmiş olduk.

            spriteBatch.End();

 

Böylelikle ekrana nasıl arkaplan deseni verileceğine ve bir nesnenin nasıl çizdirileceğini görmüş olduk. İlerki yazılarımda hareketli bir nesnenin çizimini ve hareket ettirilmesini, çarpışmaları anlatmaya çalışacağım. Ama herşey buradaki gibi basit, değişken tanımla, LoadContent metodunda gerekli şeyleri yükle, Draw metodunda çiz. Eğer hareket veya etkileşim söz konusu ise nasıl davranacağına Update metodunda karar ver.

Sonraki yazılarda görüşmek dileğiyle...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: , ,

XNA

Related posts

Comments

10/31/2009 3:55:45 PM

personal loans

Thank you for your help!

personal loans us

11/3/2009 5:20:12 AM

cash loans

thanks! very helpful post!! like the template btw ;)

cash loans us

11/9/2009 8:23:04 PM

pay day loans

Nice resource. rss feed added

pay day loans us

11/27/2009 3:05:44 PM

cash advance

never ran out of ideas don't you . nice Smile

cash advance us

12/4/2009 6:04:29 AM

proxy sites

Keep up the good work bro.Your article is really great and I truly enjoyed reading it.Waiting for some more great articles like this from you in the coming days.

proxy sites us

1/23/2010 12:27:55 AM

payday loans

All my life I've wanted to be somebody. But I see now I should have been more specific.

payday loans us

2/7/2010 9:30:30 PM

body detox

It is a paradoxical but profoundly true and important principle of life that the most likely way to reach a goal is to be aiming not at that goal itself but at some more ambitious goal beyond it.

body detox us

3/3/2010 12:41:44 PM

ucvhost

Thanks for the great post,i love to read articles that are informative and beneficial in nature.

ucvhost us

3/30/2010 12:29:29 PM

ucvhost

Your blog is my favorite, congratulates. Often I'll look here, a lot of information and nice site.

ucvhost us

5/27/2010 11:56:22 PM

discount handbags sale

This is just the information I am finding everywhere. Thanks for your blog, I just subscribe your blog. This is a nice blog.

discount handbags sale US

6/18/2010 9:59:36 PM

cash loans

One chance is all you need.

cash loans us

7/19/2010 3:25:32 AM

fast payday loans

Winners take time to relish their work, knowing that scaling the mountain is what makes the view from the top so exhilarating.

fast payday loans us

Add comment


(Will show your Gravatar icon)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

9/4/2010 12:22:49 PM

 

Yazar Hakkýnda

Erçin YONTAR
Erçin Yontar
1986 yýlýnda Çorlu'da doðdu.Ýlk öðrenimini Ankara'da, ortaöðrenimini Eskiþehir'de gördü.
Çanakkale 18 Mart Üniversitesi Bilgisayar Mühendisliði Bölümü mezunu.
Yazýlým ile çok ilgili; Visual Studiosu daima açýk :) bunun sayesinde Imagine Cup 2008 Türkiye 3.sü ve bir çok proje geliþtiriyor.
Yazýlým dýþýnda : Frp hastasý, rock/metal dinliyor, organizasyon iþlerine merak sardý. Bunlarýn yanýnda o bir; 
MCTS (Microsoft Certified Technology Specialist)



MSP (Microsoft Student Partner)

Bana posta atýn Send mail

Favorilerine Ekle


Add to Technorati Favorites

 

Twitter - Ne Yapýyorum?

    Pages

      Recent comments

      Feragatname

      Burada yazan yazýlar ve içerdikleri fikirler yazarýna aittir. Baþkasýný ilgilendirmez. Yazýlarý kaynaðýný kopyaladýðýnýz yazýnýn içinde týklanabilir link halinde belirtmek þartý ile olduðu gibi kullanabilirsiniz. Bu kurallarý deðiþtirme hakkým saklýdýr. Yarýn bir gün benim yazým benim blogumdan baþka bir yerde olamaz dersem Kopyaladýðýnýz yazýyý da silmek zorundasýnýz. Bu iþe girþen kiþi bu koþullarý ve doðan yasal yükümlülükleri kabul etmiþ sayýlýr. Eyvallah diyen devam etsin.

      © Tüm haklarý saklýdýr.

      Giriþ