Oyun Kaydetme, Kayıtlı Oyunu Açma

Yayınlandı: 23 Ağustos 2010 yasirkula tarafından Diğer Dersler, Game Maker, Oyun Tasarımı içinde
Etiketler:, , , , , , , , , , , , , , , , , , , , ,

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);

yorum
  1. Çağrı Yılmaz dedi ki:

    Eyvallah Usta Çok Yardımcı Bi Yazı 🙂

  2. yasirkula dedi ki:

    Çağrı Yılmaz :

    Eyvallah Usta Çok Yardımcı Bi Yazı :)

    Lafı mı olur, yardımcı olabildiğime ben sevindim. Yorumun için de teşekkürler 😀

  3. Muhammed Kurtoğlu dedi ki:

    merhaba hocam siz olmasaydınız biz ne yapardık bizi bilgilerinizle çok aydınlattınız

  4. yasirkula dedi ki:

    Muhammed Kurtoğlu :

    merhaba hocam siz olmasaydınız biz ne yapardık bizi bilgilerinizle çok aydınlattınız

    Teşekkürler yorum için 😀

  5. Çaylak dedi ki:

    yasirkula hocamızı 2 gündür takibe başladım istemediğim kadar çok şey öğrendim hemde öğrettiği şeyler çalışıor.

  6. melih dedi ki:

    oyunu açtığımda kod yanlış diyo

    • yasirkula dedi ki:

      Tamam WordPress kodu yapıştırdığımda kendisi abuk subuk düzenlemiş o yüzden hata veriyordu. Şimdi düzelttim ve denedim, sorunun kalkmış olması lazım.

  7. melih dedi ki:

    ben daha çaylakım yoksa ondan mı ?
    Yani tam anlamamış olabilirim?
    bu işe daha yeni başladım 🙂

  8. melih dedi ki:

    şey bi de kodsuz nasıl yapıldığını anlatabilir misin? 🙂

    • yasirkula dedi ki:

      Aksiyonlarda “main2” sekmesinde aşağıda yer alan Save Game ve Load Game aksiyonlarıyla yapabilirsiniz ama 2 dezavantajı var:

      1- Birden çok kayıt dosyası oluşturamazsınız, oyunu kaydettiğinizde kayıt dosyası öncekinin üzerine yazılır.

      2- Kayıt dosyasının konumunu belirleyemezsiniz, kayıt dosyası oyunun bulunduğu konumda oluşturulur ve kayıt dosyasını Load ederken de yine orada olmak zorundadır. (Aslında bu pek de dezavantaj değil :S )

  9. melih dedi ki:

    kod yüzündenmiş denedim oldu
    saol

  10. maruf artukoğlu dedi ki:

    abi ben bundan bişiy anlamadım bana yardımm edin bu arada text diye bi dosya acmamıs lağzımmı bana yardım edin hem ben öyle kayıt istemiyorum oyunu yükleyecek şekilde istiyorum.

    • yasirkula dedi ki:

      Hayır text dosyası oluşturmayacaksın, oyunu kaydetme butonunun olduğu event’e “control” sekmesinden “Execute Code”yi koyacaksın ve içine “Kayıt için;” yazan yerdeki kodu aynen yapıştıracaksın. Kayıtlı oyunu yüklemek için olan butondaki “Execute Code” aksiyonuna ise “Kayıtlı oyunu yükleme için;” yazan yerdeki kodu aynen yapıştıracaksın.

      Bunun haricinde istersen oyun kaydetme butonuna “main2″den alttan “Save Game”yi, oyun yükleme butonuna da “main2″den alttan “Load Game” aksiyonunu koyabilirsin. Bu yöntemle tek bir save dosyası oluşturabilirsin ama daha pratik olur.

  11. Berat dedi ki:

    Çok işime yaradı
    Teşekkürler

  12. HasaN dedi ki:

    Yasir abi kac gundur yazılarını takip ediyorum cok faydalı bilgiler paylasıyosun cok tsk ederim allah senden razı olsun.. Benim bir sorum olacak adobe flash cs6 ile bir oyun tasarladım apk uzantılı hale getirdim ve tabletime yukledim. Eksik kaldıgım bir konu var oyunun verilerini nasıl kayıtlı tutabilirim oyundan cıkış yapıp tekrar oyuna girdigimde herşey sıfırlanmış oluyor.. Yardımcı olursan sevinirim abi teşekkürler..

  13. oguzhan demir dedi ki:

    hocam merhaba ben oyunumu mobil platformlar için yapıyorum game master studio master collectionda sorunum save ve load olarak 2 tane objem var menu de ve her odada sabit bilgisayarda tıkladıgım zaman kayıt edıp kayıt ettıgım yerden devam edebılıyorum fakat telefonda ekrandaki objeye bastıgımda hiç bi tepki vermıyor kullandıgım kodlar

    SAVE

    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);
    {
    show_message(“Oyun Başarıyla Kaydedildi!”)
    }

    LOAD

    var LoadGame;
    LoadGame = get_open_filename(‘Kayıtlı Oyunlar(*’ + ‘.sav’ + ‘)|*’ + ‘.sav’ + ”, ”);
    if (LoadGame != ”) then
    if file_exists(LoadGame) then
    game_load(LoadGame);

    oyunumdaki çoğu şeyi hallettim save load ve sesler kaldı acaba andorid için save load başka nasıl yapabılırım yardımcı olursanız cok mutlu olucam save load olmadan hiç bi anlamı olmuyor kullanıcı sureklı baştan başlarsa çok itici bi hal alıyor

    şimdiden teşekkürler 🙂

    unity dersleriniz içinde çok teşekkür ederim videolu derslerinizi 4 gözle beklıyorum 🙂

    • yasirkula dedi ki:

      Game Maker’ı kullanmayalı çok oldu. Zaten çok iyi bilmiyordum motoru. Bir tavsiyede bulunamayacağım. Game Maker’ın kendi save ve load aksiyonları vardı diye hatırlıyorum; en kötüsü onları kullanabilirsiniz kanımca. İyi bir sonuç almak için sorunuzu gamemakertr.com adresine sormanızı tavsiye ederim.

  14. ARSLAN dedi ki:

    merhaaba bn dersinizi okudum fakat ben söyle bişi yapmak istiyorum oyun kaydedilip açılırken nereye kaydediceğini sormasın bize bi dosya beirleyelim oaraya keydetsin yani kısaca oyunu kaydedrken nerye kadetmek istdiğimizi soran pencere açılmsın

    • yasirkula dedi ki:

      Artık Game Maker kullanmıyorum ama hatırladığım kadarıyla main2 sekmesinde Save-Load aksiyonları olması lazım. Onlarda direkt kaydediyor, onları kullanabilirsiniz.

  15. trsoldier02 dedi ki:

    Hocam ben senin dediklerini yapıyorum . Oyunu açıyorum kaydediyorum sonra load yapıyorum ama benim kaydettiğim oyunu bulmuyor ne yapacağım ???

    • yasirkula dedi ki:

      Save ve load işlemlerinde kayıt dosyasını sizin seçebilmeniz için bir pencere çıkması lazım. Belki bu iki penceredeki uzantılar farklıdır. “.sav” diye kaydettiğiniz oyunu “.asd” diye load etmeye çalışıyor olabilirsiniz.

Bir Yanıt Bırakı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