Game Maker’da Eventlerin Gerçekleşme Sırası ve Başka Bir Odaya (Room) Geçiş Protokolü

Posted: 03 Eylül 2012 by yasirkula in Diğer Dersler, Game Maker, Oyun Tasarımı
Etiketler:, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Herkese merhaba,

Bu kısa derste Game Maker’ın kendi kullanım kılavuzunda da yer alan ama şahsen benim bulmakta oldukça zorlandığım 2 şeyi paylaşacağım:

1- Game Maker’da Eventlerin Gerçekleşme Sırası Nedir?

2- Yeni Bir Room’a Geçerken Arkaplanda Neler, Hangi Sırayla Gerçekleşir?

Ders için yazının devamını okuyabilirsiniz…

1- Game Maker’da Eventlerin Gerçekleşme Sırası

  1. Begin Step Eventi
  2. Alarm Eventleri
  3. Keyboard, Key Press, ve Key Release Eventleri
  4. Mouse Eventleri
  5. Normal Step Eventi
  6. (Şimdi tüm objeler yeni konumlarına taşındılar.)
  7. Collision Eventleri
  8. End Step Eventi
  9. Draw Eventi

Yukarıdaki bu sırayı bilerek, zamanlaması çok hassas olan birbiriyle alakalı olan GML kodlarınızın ya da normal aksiyonlarınızın hangisinin daha önce gerçekleşeceğini anlayabilirsiniz. Bunun haricinde de bu sıralama çok faydalı olabiliyor, o yüzden bence bilgisayarınızın bir köşesinde bulunsun.

 

2- Yeni Bir Room’a Geçerken Arkaplanda İşleyen Protokol

  1. Mevcut odada, Room End eventi olan tüm objelerin bu eventi gerçekleştirilir.
  2. Persistent olmayan objeler yok edilir. (Bu sırada Destroy eventi çalışmaz!!)
  3. Mevcut odadaki Persistent objeler diğer odaya taşınır.
  4. Yeni odada herhangi bir objenin (Daha doğrusu instance’nin) Creation Code’si varsa (Objeye room’da CTRL+Sağ Tuş ile açılan menüden eklenebilir.) o Creation Code’ler gerçekleştirilir.
  5. Yeni odada bulunan tüm yeni objeler oluşturulur ve onların Create eventleri gerçekleştirilir. (Eğer ki oda Persistent ise ve odaya daha önce uğranmışsa o zaman bu aşama gerçekleşmez!!)
  6. Eğer bu oda oyunun ilk odası ise (Oyun yeni başlıyorsa), odada bulunan tüm objelerin Game Start eventleri gerçekleştirilir.
  7. Şimdi odanın eğer varsa Creation Code kodu gerçekleştirilir.
  8. Son olarak da odadaki tüm objelerin Room Start eventleri gerçekleştirilir.

Buradan da anlayacağınız gibi, objelerin örneğin Room Start eventleri odanın Creation Code’sinde tanımlanmış değişkenleri kullanabilir. Ayrıca odanın Creation Code’sinin kendisinde ise, odada yer alan herhangi bir yeni veya persistent objeye erişim sağlayabilirsiniz.

Bir dersin daha sonu :).

Yorumlar
  1. As3tr diyor ki:

    Vaay 😀 Güzel Ders Olmuş Ellerine Sağlık. Sıralama bir coder için önemli 😀 başka bir şeyi başka bir şeyden önce yaparsanız bazen doğru çalışmayabilir. bu sıra game makerciler için iyi olur 😀

  2. mavi diyor ki:

    kolay gelsin ben bir uçak oyunu yapıyorum ama çok objeli oldu bu objelerin birbiri çarpıştığı zaman yok olmasını istideğim nesneler var collisyonda bir kod var mı acaba bir obje şu obje harici diğerleri ile çarpışırsa ölsün diye

  3. yasirkula diyor ki:

    Aklıma tek bir yol geliyor. Bir obje oluşturun, adı ‘parent_obje’ olsun (Tırnaksız). Oyunda yer alan tüm düşmanların (“şu obje” ve “şu obje harici diğerleri”) Parent objesi olarak ‘parent_obje’yi ayarlayın. Ardından hangi objede Collision yapacaksanız o objenin ‘parent_obje’ ile collisionuna bakın ve içine şu kodu yazın:

    if(other != ‘ ‘Şu obje harici’ olan objenin adı -Hiçbir tırnak kullanmadan-‘)
    {
    instance_destroy();
    }

    Mesela;

    if(other != dost_obje)
    {
    instance_destroy();
    }

  4. mavi diyor ki:

    çok teşekkür ederim işe yarıyor nesnelere colisyon eklemekten kınaı gelmişti

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s