Adventure Game Studio - Bölüm 2

    Tekrar merhaba,

Umarım daha önceden hazırlamış olduğum Adventure Game Studio - Başlangıç dökümanı faydalı olmuştur. Bu ikinci dökümanda AGS ile yaptığımız oyun için ana menü hazırlama, obje kullanımı, karakter yaratımı ve palet kullanımından bahsedeceğim.

Ana Menü Hazırlama    

AGS oyunlarında genellikle ana menü olarak bir GUI yerine; içinde Yeni Oyun, Oyun Yükleme, Oyundan Çıkma gibi bir ana menüde olması gereken butonların ve bu butonların çalışması için gerekli olan komutların bulunduğu odalar kullanılır. Şimdi ana menü yapmayı ayrıntılı şekilde anlatayım (AGS'de nasıl ana menü yapıldığı daha önceden Oyunyapimi.org'da sorulmuştu, oradaki cevabımı copy+paste ederek burada biraz daha geliştirdim.)

   İlk önce ana menü olarak kullanılacak olan bir room yapın. Oyuncu karakterin odada gözükmemesi için Hide Player Character'ı işaretlemeyi unutmayın. Bu yapacağınız yeni odanın background'unu içinde Yeni Oyun, Oyun Yükle gibi yazılarının bulunduğu ana menü grafiği olarak belirleyin. Oyuncunun ana menüde kullanacağı butonların herbirinin üzerlerine hotspotlar yapın. Hotspotları daha önceki yazıda anlatmıştım, ama burada dikkat etmeniz gereken bir noktayı tekrar belirteyim: Her bir hotspot farklı bir renkte olmalı, çünkü farklı fonksiyonları gerçekleştiriyorlar. Mesela New Game'in hotspot'u kırmızı iken Load Game'inki mavi olsun. (Hatırlatayım, Show this room's Hotspots yazısının sağında editing bölümü var, oradan farklı hotspotlar yaratabilirsiniz.). Sonra hotspotların Interaction bölümünden "Any click on hotspot" 'a Run Script komutunu verin ve aşağıda yazdığım komutları oraya girin.

Ana Menü Komutları
Yeni Oyun: Oyuncunun oyuna başlayacağı odaya gitmesi. Mesela 2 no'lu odada 120,200 koordinatları için
NewRoomEx(2,120,200);

 
Oyun Yükleme:  RestoreGameDialog();
Oyun Kaydetme: SaveGameDialog();
Oyundan Çıkış:  QuitGame(1);
 (Eğer 1 yerine 0 yazarsanız oyundan çıkmadan önce oyuncuya "çıkmak istediğinizden emin misiniz?" diye sorulmuyor.)

Obje/Envanter Eşyası Kullanımı

Diyelim ki oyununuzda ana karakter yerde bir anahtar görüyor ve bu anahtar ile bir kapıyı açıyor. (ben burayı anlatırken yine copy+paste devreye giriyor.)

Bir objeyi almak: İlk önce Room Editor'de Objects kısmına geçin ve New Object ile yeni bir obje yaratın. Change Image ile objenin sprite'ını belirledikten sonra Interactions kısmına geçin ve Interact Object kısmına sağ tıklayıp New action'ı seçin. Player - Give the player a new inventory item'ı seçin ve oraya oyuncunun almasını istediğiniz inventory item'ın numarasını girin. (Inventory item'ların nasıl ayarlandığını sanırım önceki tutorial'da anlatmıştım).

 
Objenin ekrandan silinmesi: Oyuncu yerden bir anahtar aldığına göre anahtarın artık yerden silinmesi gerekir. Bunu ayarlamak için Player - Give the player a new inventory item'a sağ tıklayın ve add action after this'i seçin (eğer komut vermek için AGS Script değil de AGS'nin Interaction arabirimini kullanıyorsanız bütün komutları böyle dizmen gerekiyor). Bunun altına Object-Remove object from room 'u seçin ve oraya ekrandan silinmesini istediğiniz objenin numarasını girin.(ilk obje için 0)

Anahtarı almadan kapıyı açamamak: Önceki tutorial'da anlattığım gibi bir kapı üzerine hotspot yapın. Conditional - if the player has an inventory item'ı seçin ve oraya anahtarın inventory items'daki numarasını girin. Conditional'ların dallandığını göreceksiniz. Eğer oyunda belli bir koşul sağlanmışsa o conditional'ların alt dallarındaki komutlar çalışır ve Stop running more commands komutunu yazmadığınız sürece o koşulun altında olmayan daha sonraki diğer komutlar da çalışmaya başlar. Conditional'ın alt dalına Player - Go to a new room komutunu girin (böylece eğer oyuncunun anahtarı varsa o kapıdan girebilecek). Sonra yine sağ tıklayıp add action after this'i seçin ve Stop running more commands'ı seç. Böylece eğer oyuncunun anahtarı varsa artık daha fazla komut çalışmayacak (mesela "buradan geçemiyorum, anahtarım yok" gibi bir mesajın çıkması).
Conditional- if the player has an inventory item'ın altına (ama alt dalı değil) eğer oyuncunun anahtarı yoksa ne olmasını istiyorsanız onların komutlarını girin. ("Buradan geçemiyorum, anahtarım yok" mesajı gibi).

Karakter Yaratma

Her ne kadar http://www.freewebs.com/skimbleshanks/gamepacks.htm adresinde pek çok hazır karakter ve diğer yararlı materyal bulmanız mümkün olsa da, kendi oyununuz için kendi karakterlerinizi yaratmak isteyebilirsiniz.

İlk önce karakterimizin grafiklerini hazırlayalım. Hazırladığınız karakter grafiklerini oyuna entegre edebilmek için Sprite manager'ı kullanmanız gerekiyor. Sprite manager'da herhangi bir klasöre sağ mouse tuşuyla tıklayarak Import new sprite'ı seçin. Import from file veya Paste from clipboard'dan birini seçtikten sonra Grab Image ile resmi oyuna entegre edin.

Sonra View'e gelin ve New View ile yeni bir view yaratın. Burada Loop'lar göreceksiniz, bu loop'lar karakterin aşağı-yukarı-sağa-sola yürümesi için gereken animasyonların ayarlandığı yer (AGS ile beraber default olarak gelen Roger karakterinin View'ini inceleyerek ne demek istediğimi daha iyi anlayabilirsiniz.). İşte New Frame ile Sprite Manager'daki  imajlarımızı View'a ekliyoruz. Eğer karakterin konuşma animasyonu olmasını da istiyorsanız Speech View için ayrı bir view hazırlayın.

Şimdi yeni bir karakter yaratmak için en önemli yere geldik: Characters ekranına. Eğer verdiğim linkteki hazır karakter paketlerden birini kullanıp Import Character ile oyununuza o karakterleri eklemediyseniz New Character'a tıklatın ve karakterin adını ve script adını girin (script adını AHM gibi kısa bir şey tutmanızı tavsiye ederim, sonra böylece o karakter için kod yazmanız gerektiği zaman 1000 saat boyunca character[ABDURTTURRAHMANKERIM].x gibi bir şey yazmak zorunda kalmazsınız ^^). Sonra Normal View bölümünden biraz önce View'da hazırladığımız karakter view'inin numarasını girin. Sonra karakterin oyuna nerede başlayacağını Start in room'dan ve X-Y koordinatlarından belirleyin.

Eğer "This is the player character" 'ı seçerseniz, bu karakter oyuncu karakter olur; ve oyun biraz önce Start in room'a girdiğimiz noktada başlar. Bu kısma -eğer varsa- oyunun intro veya ana menü için kullandığı oda numarasını girin.

Karakterin konuşma rengi: Orada ayrıca "talking color" diye bir yer var. Buraya herhangi bir rengin AGS'deki sayısal değerini girerek (yani RGB falan değil) karakterin konuşmalarının rengini belirliyoruz. Peki istediğimiz bir rengin AGS'deki sayısal değerini nasıl öğreneceğiz?

Palette kısmına gelin. Eğer oyununuzun renk derinliği 256 Color değil de Hi-Color'sa, (ki kesinlikle Hi-Color yapmanızı öneririm.) bir Colour Finder çıkması ve yanlrında R,G,B yazılı olan 3 barın çıkması lazım. Buradan istediğiniz bir rengi arayabilirsiniz. Orada Color Number'ın yanında siz renk buldukça değişen sayı da o rengin sayısal değeri. Mesela "12754" güzel bir mavi.

 

Şimdilik bu kadar. Umarım yardımcı olabilmişimdir. Bir dahaki sefere GUI'lere ve script'lere geçeriz.

Ahmet "CoolBlue-Gord10" Kamil Keleş

Hosted by www.Geocities.ws

1