GameMaker Studio MultiPlayer Dersleri - 12 Karekter Döndürme
UstaDerslik Soru-Cevap Yararlı Araçlar
arama ikon
Diller
Türkçe Türkçe

bilgi UstaDerslik
Bu uyari kutusudur.
Tamam
Anasayfa
İletişim
Üyeler

GameMaker Studio MultiPlayer Dersleri - 12 Karekter Döndürme

profil
cArleone
BEĞEN(1)
BEĞENME(0)
GÖRÜNTÜLENME(2322)
RAPOR ET
Gamemaker Studio online derslerimize kaldığımız yerden devam ediyoruz.Bu derste karekteri mouseye doğru çevirmeyi gördük.Dersten önce 2 tane ufak değişiklik yaptım,ders uzamasın diye.Bunlardan ilki tank spritesini sağa doğru çevirmek .0 noktasına bakmalı ki tank doğru dönebilsin.İkinci değişiklik ise x ve y olarak 2 veri tutuyorduk serverda,bu 2 veriye göre listede işlem yapıyorduk.Bu 2 değerini değişkene atadım ki veri miktarı artıkça buradan tek değişken değiştirerek hızlıca yapabilelim.

Derse geçicek olursak,ilk önce clientde stepde sürekli mouse_x ve mouse_y yolladık.Serverda bu verileri alıp listeye ekledik.Daha sonra serverdan tüm clientlere yolladığımız verilerle birlikte bu verileri yolladık.Clientler de bu verileri alıp tekrardan listelere ekledik.Son iş olarak objeler bu verileri alıp oraya bakmasını sağladık.

İndir : http://ustaderslik.com/dosya/Gamemaker%20Multiplayer-8.zip



Client Veri Yollama :

buffer_seek(depo,buffer_seek_start,0);
buffer_write(depo,buffer_u8,6);//işlem için 6 yolluyoruz.
buffer_write(depo,buffer_string,string(isim));//isimi yolluyoruz
buffer_write(depo,buffer_u16,mouse_x);
buffer_write(depo,buffer_u16,mouse_y);
network_send_packet(socket,depo,buffer_tell(depo));


Server Veriyi Alma

else if(islem=6){
var mouse_isim=buffer_read(veri_al,buffer_string);//isimi aldık.

var ia=ds_list_find_index(oyuncu_isimleri,mouse_isim);//listeden isimi bulduk
var ip=ia*global.veri_sayisi;//pozisyonu bulduk.
var mx=buffer_read(veri_al,buffer_u16);//mouse_x değerini aldık
var my=buffer_read(veri_al,buffer_u16);//mouse_y değerini aldık

if(ia>0){
ds_list_replace(oyuncu_verileri,ip+2,mx);//listeden mouse_x verisini güncelliyoruz.
ds_list_replace(oyuncu_verileri,ip+3,my);//aynı şekilde mouse_y
}else{
ds_list_replace(oyuncu_verileri,ia+2,mx);
ds_list_replace(oyuncu_verileri,ia+3,my);
}
}


Client Tank Step


var veri_ara=ds_list_find_index(obj_client.oyuncu_verileri,isim);//obj_clientteki listede veriyi arıyoruz.

if(veri_ara>=0){//veri varsa
var xx=real(ds_list_find_value(obj_client.oyuncu_verileri,veri_ara+1));//x değerini aldık
var yy=real(ds_list_find_value(obj_client.oyuncu_verileri,veri_ara+2));//y değerini aldık
var mx=real(ds_list_find_value(obj_client.oyuncu_verileri,veri_ara+3));//mouse_x
var my=real(ds_list_find_value(obj_client.oyuncu_verileri,veri_ara+4));//mouse_y yi aldık


x=xx;y=yy;//x ve y yi atadık.
image_angle=point_direction(xx,yy,mx,my);//tankı mouseye doğru çevirdik
}




Thetudors1
Thetudors1 3 Yıl Önce Cevaplandı
Güzel ders olmuş teşekkürler .
emregercan
emregercan 2 Yıl Önce Cevaplandı
abi şimdi mermi tanka deydi tankın belli bir yere ışınlanmasını istiyorum nasıl yapabilirim
cArleone
cArleone 2 Yıl Önce Cevaplandı
@emregercan clientde mermi değince servera mermi değdi diye bilgi yolla.sonra serverdaki bilgilerden o tankın x ve y si değiştir.bu şekilde server bir sonraki veride o yeni koordinatı yollayacaktır.
emregercan
emregercan 2 Yıl Önce Cevaplandı
yolluyorum ama kodlarda hata veriyo bir videoda anlatır mısın yada kodları atar mısın nerede yanlışlık yapıyorum
Gm-Bjk
Gm-Bjk 2 Yıl Önce Cevaplandı
selam abi,
sizin bu derslerinizden gerçekten çok şey öğreniyorum bunun için öncelikle size teşekkür ederim..
şimdi size bir kaç sorum var :
1-) Bu multiplayer dersleri bu kadar mı,devamı gelecek mi?
2-)oyunda can barları falan eklemek istiyorum,skorboard gibi bişeyler, o kodları da servera yollayacak mıyız yoksa normaldeki gibi yazınca da olur mu ?

3-) Bana yardımcı olur musunuz internet üzerinden bir şekilde haberleşip ....?
cArleone
cArleone 2 Yıl Önce Cevaplandı
1-ping ve chat diye 2 ders daha hazırlayacam.ama ne zaman hazırlarım bilmiyorum.
2-tüm kullanıcılarda anlık değişecek bilgileri servera yollamalısın.
3-sitedeki soru-cevap üzerinden sorunlarını sorabilirsin.
Gm-Bjk
Gm-Bjk 2 Yıl Önce Cevaplandı
eyvallah sağolasın :D
Waxmen
Waxmen 2 Yıl Önce Cevaplandı
Abi Lütfen Artık Chat Ve Ping Derslerini Çek Lütfen.



Kod
Kalın
Vurgu
Resim
Video
Url
CEVAPLA
Tüm Hakları Saklıdır. ©Arleone 2013-2014 UstaDerslik






Giriş
Şifremi Unuttum...
Şifre Talep
  Kuralları Kabul Ediyorum.
Kaydol