GameMaker Envanter Yapımı
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 Envanter Yapımı

profil
cArleone
BEĞEN(1)
BEĞENME(0)
GÖRÜNTÜLENME(2719)
RAPOR ET
Bu dersimizde minecraft tarzı bir envanter i gamemaker ile nasıl yaparız onu anlatacağım.Öncelikle bize 4 obje lazım olacak bunlar envanter,alınacak item,envanterde gözükecek item ve kontrol.Ben örnek uzamasın diye alınacak ve gözükecek itemleri aynı obje kullandım.

http://ustaderslik.com/resim/ders/545sfd51d.png

Önce mantığını anlatayım sonra kodlara geçeriz.Öncelikle envanterde tutacağımız tüm objeleri arraylarda tutacağız ve bunlara ait bilgiler saklayacağız.Örnek : 0,1=isim 0,1=miktar 0,2=konum gibi her iteme ait bilgileri saklayacağız.bu artırılabilir.Bu işlem içim array bilmeniz şart.

Daha sonra envanter de itemleri yerleştirmek için düzgün çizilmiş bir envanter resmine ihtiyaç var.Ben yukarıda minecraftınkini koydum onu kullanacağım.Düzgün çizilmesi şart çünkü belirli aralıklarla koordinatları hesaplayıp envanter üstüne bastıracağız itemleri.aralıklar uyumsuz olursa sistem iyi olmaz.Şimdi kodlara geçelim.

1-Envanter


create :
for(i=0; i<=42; i+=1){
global.envanter[i,0]="";//isim
global.envanter[i,1]="";//miktar
global.envanter[i,2]="";//konum
}

Burada değişkenleri tek tek yaratmak yerine for ile döngü şeklinde 42 tane array parametresi yarattım.

step :

for(i=0; i<=42; i+=1){
if(global.envanter[i,0]!=""){
if(i<10){
if(global.envanter[i,0]="obj_1"){if(!place_meeting(((x+70)+(i*54))+24,(y+185)+24,obj_1)){instance_create(((x+70)+(i*54))+24,(y+185)+24,obj_1)}}
if(global.envanter[i,0]="obj_2"){if(!place_meeting(((x+70)+(i*54))+24,(y+185)+24,obj_1)){instance_create(((x+70)+(i*54))+24,(y+185)+24,obj_2)}}
if(global.envanter[i,0]="obj_3"){if(!place_meeting(((x+70)+(i*54))+24,(y+185)+24,obj_1)){instance_create(((x+70)+(i*54))+24,(y+185)+24,obj_3)}}
if(global.envanter[i,0]="obj_4"){if(!place_meeting(((x+70)+(i*54))+24,(y+185)+24,obj_1)){instance_create(((x+70)+(i*54))+24,(y+185)+24,obj_4)}}
if(global.envanter[i,0]="obj_5"){if(!place_meeting(((x+70)+(i*54))+24,(y+185)+24,obj_1)){instance_create(((x+70)+(i*54))+24,(y+185)+24,obj_5)}}
if(global.envanter[i,0]="obj_6"){if(!place_meeting(((x+70)+(i*54))+24,(y+185)+24,obj_1)){instance_create(((x+70)+(i*54))+24,(y+185)+24,obj_6)}}
}else{
if(global.envanter[i,0]="obj_1"){if(!place_meeting(((x+15)+(i*54))+24,(y+10)+24,obj_1)){instance_create(((x+15)+(i*54))+24,(y+10)+24,obj_1)}}
if(global.envanter[i,0]="obj_2"){if(!place_meeting(((x+15)+(i*54))+24,(y+10)+24,obj_1)){instance_create(((x+15)+(i*54))+24,(y+10)+24,obj_2)}}
if(global.envanter[i,0]="obj_3"){if(!place_meeting(((x+15)+(i*54))+24,(y+10)+24,obj_1)){instance_create(((x+15)+(i*54))+24,(y+10)+24,obj_3)}}
if(global.envanter[i,0]="obj_4"){if(!place_meeting(((x+15)+(i*54))+24,(y+10)+24,obj_1)){instance_create(((x+15)+(i*54))+24,(y+10)+24,obj_4)}}
if(global.envanter[i,0]="obj_5"){if(!place_meeting(((x+15)+(i*54))+24,(y+10)+24,obj_1)){instance_create(((x+15)+(i*54))+24,(y+10)+24,obj_5)}}
if(global.envanter[i,0]="obj_6"){if(!place_meeting(((x+15)+(i*54))+24,(y+10)+24,obj_1)){instance_create(((x+15)+(i*54))+24,(y+10)+24,obj_6)}}
}
}
}

Stepte ise önce 42 tane alanı sürekli tarayıyoruz.İsimleri boş olanları şeçiyoruz.Önce alta boş yer varmı diye bakıyoruz.Yoksa yukarıda işlem yapıyoruz.1 bölüm boş diyelim.Buraya basacağımız objenin ismini karşılaştırıyoruz.İsim uyarsa orda bu objeden daha önce bastıkmı kontrol ediyoruz.Yoksa buraya bu objeyi basıyoruz.

2-Alınan obje


create :
isim="obj_1";
miktar=3

İsim ve miktarını belirliyoruz.

left pressend :
for(i=0; i<=42; i+=1){
if(isim!=global.envanter[i,0]){
if(global.envanter[i,0]=""){
global.envanter[i,0]=isim;
global.envanter[i,1]=miktar;
global.envanter[i,2]=i;
break;
}
}else{
global.envanter[i,1]+=1;
break;
}
}
instance_destroy();

Bu objeye tıklanırsa 42 bölümü tek tek kontrol ediyoruz.Eğer o objeden varsa miktarını artır diyoruz.Yoksa ilk gelen göze itemi yerleştrip döngüyü bitiriyoruz.

Temel kullanımı bu şekilde verileri arraylarda tutuğumuz sürece değişik işlemleri yaptırabiliriz.Örnek mouse sürükleyip başka göze koyma gibi işlemleri.

Görüntüsü :
http://ustaderslik.com/resim/ders/54gdf1df58f4g.png

İndir : http://ustaderslik.com/dosya/envanter.zip



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