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

XNA'de Multiplayer Network Temelleri – 2

yazan: 9/6/2008 6:25:00 AM

Bu yazımın konusu host edilmiş oyunu senkron şekilde bulmak olacak;Hostu nasıl oluşturacağımız hakkındaki yazımı buradan bulabilirsiniz.

Senkron bulmada yapmamız gereken uygun oturumları (session) bulmak, bulduğumuz oturumda oyuncu için boş slot aramak eğer uygunsa o slota yerleşmek. Yalnız bu kodu yazıp bitirdikten sonra 2 bilgisayara ihtiyacınız olacak, birinden host kurup diğerinden buraya bağlanacaksınız ben sanal makine kullanırım diyenlere eyvallah diyorum. Neyse ben başlayayım fazla uzatmadan;

Aşağıdaki metot bize oturum bulmayı ve içinden slot edinmeyi gösteriyor; bu metodu AgIsleri.cs dosyamıza ekleyelim.

  public void OturumBul()

        {

            // Tüm uygun sessionların listesi

            AvailableNetworkSessionCollection uygunOturumlar;

            // Katılacağımız session

            AvailableNetworkSession uygunOturum = null;

            // Bu komut ile tüm uygun oturumları listemize almiş oluyoruz

            uygunOturumlar =NetworkSession.Find(NetworkSessionType.SystemLink,

                                                 maxLocalOyuncu, null);

                        /* Yukrıda 3. parametredeki null Arama filtrelemek için bir opsiyondur

                               Buraya istenirse SearchProperties tipinde değer girilebilir */

            // Oyuncu için slota sahip olan bir oturum arıyoruz

            foreach (AvailableNetworkSession aramadakiOturum in uygunOturumlar)

            {

                // mantık basit bir oturuma ait açık ve rezerve

                //tüm slotların toplamı alınır

                int OturumSlotlariToplami = aramadakiOturum.OpenPublicGamerSlots +

                                             aramadakiOturum.OpenPrivateGamerSlots;

                // ve bu toplam dolu slotlardan fazlaysa hemen o oturum

                //uygun kabul edilir.

                if (OturumSlotlariToplami > aramadakiOturum.CurrentGamerCount)

                    uygunOturum = aramadakiOturum;

            }

            // eğer uygun oturum bulabildiysek katılıyoruz

            if (uygunOturum != null)

            {

                durum = " " + uygunOturum.HostGamertag + " adlı hostta uygun oturum

                                                            bulundu.";

                oturum = NetworkSession.Join(uygunOturum);

            }

            else

                durum = "Hiç uygun oturum bulunamadı.";

        }

Bu şekilde host arama ve dahil olma işini hallettikten sonra bu aramayı çalıştıracak kullanıcı etkileşimine geldi sıra, Game1.cs dosyasını açıyoruz, Update metoduna alttaki kodu ekliyoruz. Ben etkileşim tuşu olarak “S” (Senkron ara) tuşunu seçtim, siz aslında uğraşıp görsel tuşlar da ekleyebilirsiniz herşey dikdörtgenden ibaret, dikdörtgen çizmeyi (hatta içini doldurmayı) bu yazımda fare etkileşimini de bu yazımda anlatmıştım. Size de fare tıklamasının dikdörtgenin sınırları içinde olup olmadığını kontrol etmek içindeyse gerekli işi yaptırmak kalıyor.  Ya da dikdörtgene onMouseclick tarzı bir event handler da yazabilirsiniz gördüğünüz gibi bir sonuca ulaşmanın birden çok yolu var. Takılırsanız iletişime geçin. Neyse bu moladan sonra işe devam; Game1.cs sınıfımızın Update metoduna aşağıdaki kodu ekleyelim;

            // Oturum ara

            if (Keyboard.GetState().IsKeyDown(Keys.S))

                agYardimcisi.OturumBul();

İşte bu kadar basit XNA’de herşey çok basit zaten. Yazıyı kısa bulanlar Allah’larından bulsunlar. Bu saatte yazıyorum. Bir sonraki yazımda da Asenkron şekilde slot aramayı anlatacağım.

Currently rated 5.0 by 1 people

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

Etiketler: , , ,

XNA

Related posts

Comments

2/15/2010 9:45:07 AM

acai berries

This information is some of the best I have found on this topic for me, I really appreciate this point of view and I've found it to be more reliable then some, I will be recommending it to others.

acai berries us

2/15/2010 11:01:13 AM

Best Teeth Whitening Products

This article gives the light in which we can observe the reality. this is very nice one and gives in depth information. thanks for this nice article.

Best Teeth Whitening Products us

3/3/2010 12:40:37 PM

ucvhost

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

ucvhost us

3/27/2010 5:58:07 AM

Pleated Blinds

Well said and your post is very well versed, but I can't agree with you completely

Pleated Blinds us

3/30/2010 12:28:46 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:55:54 PM

discount designer handbag

Amazing article. Bookmarked it already. Best regards, Ken.

discount designer handbag US

7/3/2010 9:12:13 AM

bagsvendor

I find your blog in google. And I will be back next time, thanks.

bagsvendor US

7/16/2010 11:22:54 PM

cash advance payday loans

The great thing in the world is not so much where we stand, as in what direction we are moving.

cash advance payday loans us

7/21/2010 11:10:47 AM

gucci bags

Hello, I was researching the net and I ran into your blog. Keep up the great work. If you are like most people, you certainly want more energy to deal with daily work and running around.

gucci bags US

Add comment


(Will show your Gravatar icon)  

  Country flag

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



Live preview

9/4/2010 12:08:13 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þ