Room, Draw ve alarm vs.
Room;


Background: Burdan Room'unuzun arka planını ayarlayabilirsiniz. Tile hor. ve Tile ver. bunlar backgroundunuzu room sonuna kadar kopyalar. mesela roomunuz 1000*1000 büyüklügünde fakat siz 32*32 büyüklügünde bir çimen çizdiniz. bu kutucukları işaretlerseniz odanız komple çimen olur.

Views: Bu biraz uzun: ekranın herhangi bir objeyi takip etmesi. mesela siz 100*100 room oluşturup oyunu başlatırsanız oyununuzun ekranı da 100*100 olur. fakat 5000*5000 room yapıp başlatırsanız oyununuzun ekranı da 5000*5000 olur. kısacası oynayamazsınız.

örnek: açık dünyabi 2D top-down oyun yapıyorsunuz ve room'unuz 10000*10000. siz 1280*720 bir kamera oluşturup karakterinizi takip etsin istiyorsunuz. Öncelikle Views kısmından Enable the use of view kutucugunu işaretlemeniz lazım. view kullanılsın demek yani. sonra da visible when room starts'ı da işaretlemeniz lazım. oyun başlar başlamaz view kullanılsın demek yani. öncelikle View in room şu demektir, odanın ne kadarlık bir kısmı oyun penceresinde gösterilsin. bunu kesinlikle port on screen ile aynı yapmanız lazım. yoksa yanlış gözükür oyun. atıyorum View in room'u 1280'e 720 yaptınız. artık kocaman odanızın sadece 1280*720'lik bölümü oyun ekranında gösteriliyor.

sıra geldi Port on screen'e. yani bu 1280*720'lik görüş alanının ne kadarını oyun penceresine sıgdırsın demek. bunu 500*500 yaparsanız oyunu başlattıgınızda 500'e 500 büyüklügünde oyunu oynarsınız fakat odanın 1280*720 lik bölüğmünü görürsünüz. fakat bu saçma olur anlatamıycam kendiniz deneyin. o yüzden eğer ne yaptıgınızı bilmiyorsanız, bu iki seçenegi de aynı yapmanızı öneririm. Objects following ise bu oluşturdugumuz view'in yani kısaca kameranın neyi takip edicegi. burdan karakterinizin obejsini yada herhangi bir objeyi seçerseniz, kamera onu takip edicektir. Son olarak Hbor, Vbor, Hsp ve Vsp var. bunları açıklamıycam gereksiz tek bilmeniz gereken Vsp ile Hsp'ye dokunmayın ve Hbor ile Vbor'a 3 adet 0 ekleyin. (default olarak 32 yazar yani 32000 yapmanız gerekiyor.)

Physics: eğer yeniyseniz hiç bulaşmayın gereksiz bir seçenek zaten biz bunu daha önce de dediğim gibi kodlarla yapabiliyoruz.

Objects: Bur menüde boş kare alana tıklayarak yarattıgınız herhangi bir objeyi seçip, odanıza koyabilirsiniz. ayrıca biraz daha altta klavye kısa yolları yazar.

Settings: odanızın yani room'unuzun ayarları. burda room'unuzun ne kadar büyük olacagını seçebilir, Presisdent(odalar arası geçişte bu oda sıfırlanmayacak) yapabilir ve odanıza isim verebilirsiniz. (isim sadece sizin yırt edip görebilmeniz ve kodlarda kullanabilmeniz içindir oyuna etkisi yoktur. hiç bir sprite,font,object vs. için isimlerinde türkçe karakterler kullanmayın. kod yazarken çağıramazsınız.)

Tiles
: Gereksiz bir seçenek daha.


Draw eventi;

Geldik çizim eventimize. Draw içerisinde çok fazla ayrılır Draw GUI, post draw, pre draw vs. fakat eğer yeniyseniz bunları şimdi öğrenmeznie gerek yok zaten. siz düz Draw eventi açın
sağ panelde CONTROLS kısmına gelip, Code bölümünden Code parçaçığına sağ tıklayın. (kod yazmak için her eventte bu yolu kullanırsınız.)
şimdi kısa bir örnek il başlayalım. istediginiz bir yazıyı ekrana nasıl yazabileceginizi göstericem. kod sayfasına,
draw_text yazın. bu kod ingilizce bilenlerin rahatlıkla anlayabilecegi "yazı çiz" demekdir. "()" açıp arasına yazarız kodları.
(, ile ayırmayı unutmayın.) örnek;

draw_text(x,y,"hello")
X kısmı x kordinatı'dır Y ise y kordinatı'dır. son olarak 2 tırnak açıp arasına istediğiniz şeyi yazarsınız. eğer x ve y kısmına X ve Y yazarsanız objeyi odanızda nereye koyduysanız tam objenizin üzerinde yazar o yazı. kordinat kısmına x,y yazmak obejenin kordinatı demektir. eğer oraya 0,0 yazsaydık objeyi nereye koyarsanız koyun hello yazımız 0,0 yani sol üst tarafta gözükecekti.

bir değişkeni de yazdırabilirsiniz. en basit örneği karakterinizin parasını yazdırmak istiyorsunuz. hadi başlayalım.

önce bir karakter objesi oluşturun atıyorum ismi obj_player olsun. sonra karaktere Create eventi açıp, kodlamaya başlayın.
global.money=100;
yazalım.
sonra yeni bir obje açalım. atıyorum ismi obj_draws olsun. bu objeye draw eventi açın ve kodlamaya başlayın.
draw_text(obj_player.x,obj_player.y,global.money);

burda yaptıgım şey, obj_player yani karakter objemizin x'inde ve y'sinde (yani tam karakterimizin üstünde) global.money değişkenini yazdır. şimdi bu yarattıgımız 2 objeyi de odanızın içine koyun ve oyunu başlatın. global.money değişkenini ne belirlediyseniz, karakterinizi koydugunuz yerde o yazar.

NOT:

herhangi bir koordinat isteyen kodun içerisine ister x,y yazın
(bu kodu yazdıgınız objenin oldugu nokta demek)

ister elle koordinat yazın
(100,400 gibi, eğer bunu yazarsanız x100'de ve y400'de yazınız yazar)

isterseniz de başka bir objenin yerini yazın
(obje_ismi.x ve obje_ismi.y. örnek: obj_player.x obj_player.y)




ve sıra geldi CAN BARI olayına. bu biraz uzun olucak ama öğrendiğiniz zaman 10 saniyede yazabiliyorsunuz :dd


diyelim karakterinizin canını gösteren bir can barı yapmak istiyorsunuz. ilk önce vars adlı bir obje oluşturun. (karakterinizin içene de yazabilirsiniz fakat makarna kod'a gerek yok dediğimi yapın buna alışın.)
vars objesine create eventi açın ve kodlamaya başlayın;

global.playerhp=100

şimdi bir obje daha oluşturun ismi atıyorum obj_draws olsun bu objenin içine draw eventi açın ve yazmaya başlayın;

draw_healthbar()

tüm kodumuzu bunun içerisine yazacagız. öncelikle sırasıyla içerisine ne yazmamızı istediğini
ve anlamlarına bakalım sonra kodu yazarız;

draw_healthbar(x1,y1,x2,y2,amount,backcol,mincol,maxcol,direction,showback,showborder)

x ve y kısımlarını açıklayayım. can barımız dikdörtgen veya kare olabilir.

x1=can barımızın sol tarafı nerde olsun. (can barının uzunluk başlangıcı)
x2=can barımızın sağ tarafı nerde olsun. (can barının uzunluk bitişi)
y1=can barımızın üst tarafı nerde olsun. (can barının yükseklik başlangıcı)
y2=can barımızın alt tarafı nerde olsun. (can barının yükseklik bitişi)

amount kısmına ise değişkenimizi yazıyoruz. yani biz burda karakterimizin can barını yapmak istedigimiz için global.playerhp yazıyoruz.

backcol= can barımızın arka kısmı ne renk olsun. genellikle gri yaparım ben.
mincol= can barı azaldıkça, yani karakterin canı azaldıkça can barı ne renge bürünsün. genellikle kırmızı yapılır.
maxcol= can barı çoğaldıkça veya fullse ne renge bürünsün. genellikle yeşil yapılır.
renkleri yazmak için c_renkismi yazılır. örnek;
kırmızı: c_red
yeşil: c_green
gri: c_grey
tüm renkler c_ ile başlar sonrasında ise renk ismi yazılır tabi ingilizce. basit.

direction: can barımız hangi yönde olucak. yani soldan sağa mı yoksa yukardan aşşagı mı vs.
can full iken sağda, can 0 iken solda olmasını sitiyorsanız buraya 90 yazın.

showback: can barımızın arka plan rengini belirledik ya hani, eğer arka plan rengi gözükmesin istiyorsanız buraya 0 yazmalısınız. eğer gözüksün istiyorsanız 1 yazabilirsiniz.

showborder:can barımızın kenarları gözüksünmü. istiyorsanız 1, istemiyorsanız 0 yazabilirsiniz.

şimdi kodlamaya geçelim;
draw_healthbar(0,0,100,20,global.playerhp,c_gray,c_red,c_green,90,1,1)
dedim ki 0,0 dan başlasın 100 genişliginde ve 20 yüksekliginde olsun can barı.
global.playerhp değişkenini göstersin. 90 yönünde olsun. oyunu başlattıgınızda şöyle görünücek;



 
biraz bu barla oynayalım.
 
vars objesine step eventi açın ve şunu yazın;

if keyboard_check(vk_down)
{
global.playerhp-=1
}

hadi kodu açıklayalım: if'i zaten [burada] daha önce açıklamıştım değinmeyeceğim.

keyboard_check() demek klavye tuşunu algıla demek. yani klavyeden bi tuşa bastıgınızda bir şey olmasını istiyorsanız bu kodu kullanmalısınız. içerisine de hangi tuşu kulanacagınızı yazmalısınız.
vk_down ise aşşağı yön tuşu demektir.
vk_ = yön tuşu. mesela sağ yön tuşunu kullanmak istiyorsanız vk_right demelisiniz. ingilizceleri işte basit. fakat vk_ hiç değişmez. (sadece yön tuşları için.)

yani dedik ki aşşağı yön tuşuna basılı tuttugumuzda global.playerhp 1 eksilsin. (gm default olarak sanieyde 30 kare çalıştıgı için biz basılı tuttugumuzda saniyede 30 can gidicek.) hadi oyunu başlatın ve deneyin! canınız azaldıkça can barının rengi de ayarladıgınız renk'e dönücek.
Hadi şimdi de aynı kodu kopyala yapıştır yapın altına tek fark bu sefer YUKARI yön tuşuna bastıgınızda karakterin canı artsın. yapabilirsiniz! gerçekten basit.

 
Ve geldik alarm mantığına.

alarm dediğimiz şey aslında bir sayaçtır. basittir ve kullanıilıdır. her 10 oyunumdan 9'unda kullandığım şeydir. tabi alarm olmadan manuel larak da sayaç yapabiliyorsunuz fakat daha zor hazırı varken ne gerek var? hadi bir örnek ile başlayalım.

diyelim ki basit bir saniye göstergesi yapmak istiyorsunuz. o zaman, öncelikle herhangi bir obje oluşturun ismi fark etmez. sonra o objenin içerisinde create eventi açın ve saniye değişkeni atayın. mesela; 
global.saniye=0.
sonra draw eventine yarattığınız saniye gösterge değişgenini yazdırın; draw_text(x,y,global.saniye).
son olarak alarm eventi açın (alarm 0 dan 11 e kadar vardır hepsi aynıdır farketmez.) ve şunları yazın;

global.saniye+=1.
alarm[0]=30 //alarm doldugunda saniyeyi 1 arttırdıgında sayacımızın durmaması için tekrar 30'a ayarladık. döngü.

sonra create eventine geri dönün ve global.saniye'nin altına şunu yazın;

alarm[0]=30. (hangi alarmı seçtiyseniz onu yazın ben 0'ı seçtim 0 yazdım.) işimiz bitti şimdi bu objeyi odanızın ortasına koyun ve oyunu başlatın. sayacımızın çalıştıgını görüceksiniz.

Peki neden alarm'ımızı 30 ayarladık? çünkü Game Maker saniyede 30 kare çalışır. yani 30=1 saniye. basit.
 
Anket'e katılmak ister misiniz?
 


Bu sayfayı nasıl buldunuz?
Hoş, bilgilendirici.
Eh işte işime yaradı.
Bir şey arıyorum.
Bir katkın olmadı.
GM kullanan mı kaldı ya?

(Sonucu göster)


 
Bugün 5 ziyaretçi (6 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol