Game Maker Oyun Kaydetme, Kayıtlı Oyunu Yükleme Kodu
Merhaba! Bu derste sizinle çok basit ve güzel bir kodu paylaşacağım. Vereceğim kod sayesinde Game Maker ile yapılmış oyununuzda istediğiniz yere istediğiniz isimle kayıt dosyası oluşturabilir, ardından da bu kayıt dosyasını bulup Load edebilirsiniz.
Bu kodun orijinali Simon Donkers’a aittir (www.simondonkers.com). Ancak kod, tarafımca düzenlenmiştir. İsterseniz hemen deneyin, beğeneceksiniz 🙂
Bu kod için ekstra bir obje oluşturmanızı tavsiye ediyorum. Oluşturduğunuz objeye istediğiniz ismi verebilirsiniz ama save-load sistemiyle ilgili bir şey olursa objenin ne olduğunu daha rahat anlarsınız. Bu oluşturacağınız obje oyunda yer alan tüm odalarda yer almalıdır ki oyununuzun her odasında oyununuz kayıt edilebilsin. Yok, bende çoook oda var, koya koya ellerim çürür derseniz (Bir ilk! :D) bu objeyi sadece ilk odaya koyun ve obje özellikleri ekranından objeyi “Persistant” yapın. Bu sayede obje tüm odalara geçiş yapacaktır, ancak kesin çözüm için objemizi her odaya da elle koyun siz. Objemize sadece 2 event ekleyeceğiz. Bunlar da oyunu kayıt etmek ya da kayıtlı oyunu açmak için kullanacağımız tuşların eventi olacak. Mesela ben oyunu kaydetmek için F2’ye, kayıtlı oyunu yüklemek için de F3’e basmak istiyorum diyelim. O zaman “Key Press F2” eventine alttaki “Kayıt için” yazan yerdeki kodu, “Key Pres F3” eventine de “Kayıtlı oyunu yükleme için” yazan yerdeki kodu “Execute Code” aksiyonu sayesinde ekleyeceğim. Ardından eğer yanlış bir şey yapmadıysanız ya da kodları girdiğimiz objeyi odaya koymayı unutmadıysanız save-load sistemi istendiği gibi çalışacaktır.
NOT: Eğer kayıt dosyasının uzantısının kendinize has bir şey olmasını istiyorsanız (Şu anki kodda .sav uzantılı oyun kayıt dosyaları oluşturulur.) alttaki iki kod parçacığında da yer alan tüm “.sav” (Tırnak işaretsiz) ları silip kendi uzantınızı yazabilirsiniz. (Örneğin “.yasir” (Tırnaksız) gibi.) Ayrıca uzantınızın başında nokta olmasını da sakın unutmayın.
Hepinize iyi eğlenceler!
__________________________________
Kayıt için;
var Savegame;
SaveGame = get_save_filename('Kayıt Dosyası(*' + '.sav' + ')|*' + '.sav' + '', '');
if SaveGame != '' then
if string_copy(SaveGame, string_length(SaveGame) - 3, 4) != '.sav' then
SaveGame = SaveGame + '.sav';
game_save(SaveGame);
__________________________________
Kayıtlı oyunu yükleme için;
var LoadGame;
LoadGame = get_open_filename('Kayıtlı Oyunlar(*' + '.sav' + ')|*' + '.sav' + '', '');
if (LoadGame != '') then
if file_exists(LoadGame) then
game_load(LoadGame);