GameMaker: Studio'da komut dosyaları, değişkenler ve işlevler

Oyun Yapıcı: Stüdyo ve bize sağladığı IDE ile hızlı ve kolay bir şekilde video oyunları oluşturabiliriz, bu da bize oyunlarımızı geliştirmemize yardımcı olan araçlar sağlayan kolay ve anlaşılır bir arayüz sağlar.

Bu araçlardan biri GML veya GameMaker Diliortamımızın işlevselliğini çok daha fazla genişleten ve uygulamalarımızın geliştirilmesi için diğer öğelerle birlikte kullanacağımız proje için kendi kodumuzu komut dosyaları aracılığıyla yazmamıza izin veren .

Komut dosyaları oluşturma
Birkaç satır kod almaya devam etmeden önce, komut dosyalarımızın bulunduğu sitelere bir göz atacağız ve duruma göre onlarla neler yapabileceğimize dair bize bir genel bakış sunacağız.

Bir olay içinde komut dosyası oluşturma


Bir nesnenin içinde onunla ilişkili olaylar vardır ve bu olaylar bir komut dosyası içerebilir veya bunlardan birini çağıran bir eylem içerebilir. Bu, komut dosyaları için Sürükle ve Bırak işlevinin kullanılacağı tek zaman olacaktır.

NS komut dosyası ekle bir olay için önce kaynaklar menümüzden bir nesne oluşturmalıyız ve oluşturulduktan sonra butonunu kullanmalıyız. etkinlik ekle oluşturmak için:

BÜYÜT

Bu işlemden sonra sekmemize geçiyoruz. kontrol ve bölümde kod, bir yaprak kağıda benzeyen ilk simgeyi sürükleyip Hareketler ve yayınlayacağız, bu eylem komut dosyamızı oluşturacak ve kod satırlarımızı yazmaya başlayabiliriz:

BÜYÜT

Kaynak olarak komut dosyaları oluşturma


Kaynak olarak bir komut dosyası oluşturmak için kaynak menümüze gidip Komut Dosyası Oluştur, burada komut dosyası oluşturulduktan sonra ilgili bölümün altındaki kaynak ağacında görünecektir:

BÜYÜT

Bir komut dosyası oluşturmanın birkaç yolu vardır ve bunların her birinin avantajları vardır, bir komut dosyasının kaynak olarak kullanılması durumunda aşağıdaki koşullar en kullanışlı olanlardır:

  • Birçok nesne işlevi kullandığında
  • Bir işlev birden çok veri girişi veya bağımsız değişken gerektirdiğinde.
  • Yükle ve kaydet gibi genel eylemler kullanıldığında.
  • Karmaşık mantık veya algoritmalar uygularken.

Odalardaki komut dosyaları


NS Odalar veya odalar, belirli kaynakların yerleştirildiği ve oyunun oynandığı yerdir. Bu kaynaklar, ilgili menüden diğerleri gibi oluşturulabilir. Oda yarat:

BÜYÜT

Bu odalar veya odalar ayrıca scriptler de içerebilir, bunun için bir odayı düzenlerken odanın özellikleri içindeki ayarlar sekmesine gidiyoruz ve orada buton görmeliyiz. Kod oluşturma:

Bu düğmeye basmak, o odayla ilişkili boş bir komut dosyası oluşturacak ve bu, bir oyuncu odayı yüklediğinde, bu, herhangi bir nesne kendi olayını tetiklemeden önce yürütülecektir.

GML komut dosyaları
Kendimizi nerede oluşturabileceğimizi bildiğimizde Kodlar ve bunları hangi kaynaklarla ilişkilendireceğimizi, senaryolarımızı oluşturan parçaları ve ustalaşmamız gereken kavramları bilmenin zamanı geldi, bakalım.

programlar


içinde bir program GML içindeki herhangi bir komut dosyasının olduğunu söyleyebileceğimiz, belirli bir sırayı izleyen bir dizi talimattır. GML bu programların genellikle kaşlı ayraçlarla kapatıldığı bir programdır, bir örnek görelim:
 {str_text = "Merhaba dünya"; x + = 10; if (x> 200) {str_text = "Merhaba Solvetic"; }}
Gördüğümüz gibi, string türünde bir değişkenin örneğini yaptığımız, ardından her çerçevenin veya 10 birimin eklendiğini tanımladığımız basit bir programdır. x ve son olarak, eğer x 200'den büyükse, atamanın yeniden yapılması koşulu.

Bununla birlikte, noktalı virgülün gerekli olmadığını belirtmek önemlidir. GML kodun okunmasını iyileştirmek için kullanılması önerilir. Ayrıca büyük harf kullanılmaması ve herhangi bir değişken iki kelimeden oluşacaksa alt çizgi kullanılması tavsiye edilir.

Değişkenler
içindeki değişkenler GML Değerleri temsil etmemize izin verenlerdir ve diğer bazı programlama dillerinden farklı olarak kesin olarak tek tip değildirler, yani belirli bir veri yapısını temsil etmeleri gerekmez. Ancak, bu değişkenler şu iki türden birini temsil edebilir:

  • Gerçek bir sayı 200 veya 5,356 olabilir. Bu tamsayılar ayrıca belirli bir nesne, oda, komut dosyası veya başka tür bir kaynak örneğine karşılık gelebilir.
  • "Merhaba Dünya" gibi metni görüntülemek için düzenli olarak kullanılan alfasayısal karakterler koleksiyonunu temsil eden bir dize.

Değişken önekler


Yukarıda bahsedildiği gibi, değişkenler herhangi bir veri türüne, hatta herhangi bir kaynağa karşılık gelebilir, ancak bu sorunu çözmek için, içerdiği veri türünü tanımlamamıza izin veren değişkenler için ön eklere sahibiz. Bu zorunlu değildir, ancak GML'de daha iyi çalışabilmek için bir gelenektir, örneğin str_player_name Bunun bir string olduğunu zaten bileceğiz, hadi kullanabileceğimiz önekleri görelim:
  • str: dize
  • bahar: Sprite
  • snd: Sesler
  • bg: Arka Planlar
  • pth: Rotalar
  • scr: Komut dosyaları
  • fnt: Yazı Tipleri
  • tml: Zaman Çizelgesi
  • nesne: nesne
  • oda: oda
  • not: Parçacık sistemi
  • örneğin: Parçacık yayıcı
  • pt: Parçacık türü
  • ev: olay

Değişkenlerin kapsamı


Komut dosyalarımız içinde değişkenlerin farklı kapsamları vardır, bu da değişkenlere erişme ve değerleri ayarlama şeklimizin değişebileceği anlamına gelir. Sahip olduğumuz farklı kapsamları görelim:

Misal


Bu değişkenler, her nesnenin örneğine veya kopyalarına özeldir. GML içinde en yaygın olanı, kendileri ve diğer nesneler tarafından erişilebilir ve ayarlanabilirler.

yerel


Bunlar yalnızca bir işlev veya komut dosyası içinde var olanlardır, ayrılmış sözcük kullanılarak bildirilirler. var ve sadece tanımlandıkları scriptlerde erişilebilirler.

küresel


Global olan bir değişkene herhangi bir nesne tarafından bir komut dosyası aracılığıyla erişilebilir, nesne örneğinin bireysel örneğine değil oyuna aittir.

sabitler


Sabitler, değerleri yalnızca okunabilen ve değiştirilemeyen değişkenlerdir, global hatta örnek olabilir.

Değişkenlerin farklı kapsam türlerini bildiğimiz için, kapsama göre atamayı nasıl gerçekleştirdiğimize dair küçük bir örnek görelim:

 // durum 1 var a = 1; // durum 2 globalvar b; b = 2; // durum 3 global.c = 10; // durum 4 self.x = 10; // durum 5 y = 10;
İlk vaka için elimizde bir yerel değişken, bu, ayrılmış kelimenin kullanımıyla kolayca tanımlanır var. İkinci durumda, bir beyanımız var. küresel değişken ve görevin. Durum 3 için, bir bildirimde bulunmanın ve atamanın alternatif bir yoludur. küresel değişken ve son olarak durum 4 ve 5 için örnek değişkenler ama içinden biri öz ve diğeri yok.

Dil değişkenleri


Son olarak, değişkenler konusunda, tarafından sağlanan bazı global ve örnek değişkenlerimiz var. Oyun Yapıcı: Stüdyo gibi her nesne için x, hareketli grafik veya dizin birkaçından bahsetmek gerekirse. Ancak aynı zamanda küresel olan dil değişkenleri de vardır. sağlık veya sağlık, Puan veya puan ve hayatları ya da yaşıyor. Bu değişkenlerin kullanımı her geliştiriciye bağlıdır, bu yüzden onlarsız yapmaya karar verebiliriz, ancak bu isimler onları hatırlamayı ve programlarımızda uygulamayı çok daha kolay hale getirir.

Özellikleri
A işlev GML'de bir programı çalıştırmanıza izin veren bir işlevdir, varsayılan olarak dilde gelebilir veya komut dosyası türü bir kaynak olarak oluşturulabilir.

Bu işlevler, çizim olayı sırasında bir yazı tipinin hizalamasını değiştirmek, bir değer döndürmek veya her ikisini birden yapmak gibi bir eylemi gerçekleştirebilir, bu işlevlerin ardından parantez ve gerekirse belirli argümanlar gelmesi gerekir. Bazı işlevlerin davranışını görmek için birkaç kod satırına bakalım:

 // durum 1 kendini çiz (); // durum 2 draw_arrow (0,0,100,100,2); // durum 3 rastgele_değer = rastgele (10, 23);
1 numaralı durum için, örnek çizen basit bir fonksiyonumuz var, 2 numaralı durum, bir eylemi yürüten bir fonksiyondur ve çalışması için argümanlar gerektirir, son olarak, rastgele bir değer elde etmek ve geri dönmek için bir eylemi yürüten bir fonksiyonumuz var. bir değişkene dönüştürülür.

özel bir durum var script_execute, kaynak olarak oluşturulan komut dosyalarına erişmemizi sağlayan bir işlevdir ve özelliği, komut dosyamızın değişkenlerini kullanmamıza ve ardından çalıştırmamıza izin vermesidir:

 self.script = scr_script_recourse; script_execute (self.script, "argüman", obj_button, 0.12, false);
spektrumunu nasıl görebiliriz? Oyun Yapıcı: Stüdyo arayüzünün çok ötesine geçen, değişkenler veya işlevler gibi geliştiricilerin aşina olduğu öğelere sahip GML gibi güçlü bir aracımız var ve bu sayede geliştirme bilgimizi projelerimizin ve oyunlarımızın geliştirilmesine uygulayabiliriz.

wave wave wave wave wave