[Çakal Ders]Oyununuzun hata gunlüğünü tutun !
Yazmıcam diyorum ama boşuna

İnsan ayrılcam desede yapamıyor neyse...
Bu derste size , oyununuzda karşılaşılan hatalarda oyununuzun game makerle yapılmış gibi değilde gerçek programlamayla yapılmış bir oyun gibi olmasını öğreticem. İşin çakallığıda burda : ). Diyelim oyun içinde bir dosya açılacak ancak dosya yerinde değil. Doğal olarak game maker , abort & ignore butonu olan bir hata vericek. İşte bu küçük kutucuk , oyununuzun game makerle yapılmış olduğunu gösteriyor ve bu kutucuktan artık kurtulma zamanı geliyor ve burdan sonrasına ben devreye giriyorum. Mesela osman.lan diye bir dosyayı açmak istiyorsunuz ama yerinde yok yani :
if !(file_exists("osman.lan"))
{
...
}
İşte , dosyanın olmadığını böyle kontrol ediyoruz ki game makerin hata yakalama motoru devreye girmesin. Burada "if" in sağındaki ünlem işareti , deyimin aksini kontrol eder. Yani file_exists "Dosya varmı" demek. Ünlem işareti koyarak yazdık ve Dosya yokmu oldu ... Dosya yok mu ? eğer(if) yoksa (deyim doğruysa) { ...}
Şimdi size hata gunlüğünuzü yapmayı öğreteyim :
if !(file_exists("osman.lan"))
{
var dos;
dos=file_text_open_write(working_directory+"\oyun_hatalari.txt");
file_text_write_string(dos,"Hata : osman.lan dosyası bulunamadı.");
file_text_writeln(dos);
file_text_close(dos);
}
Kodumuz bu kadar. Burda var dos , bir değişken yaratıyor ve 2. satırda ise open write diyoruz. Bunun sayesinde dos adlı değişkenimiz , artık dosyanın id'sini gösteriyor. Geriye yazma işlemleri kalıyor. Mesela hata ile karşılaşıldıysa aynı üstteki gibi hata yazılıp alt tarafa game_end(); ile oyunu bitiriyoruz. Hem , adam sizin oyununuzun game makerle yapılmadığını anlar hem de klasik hata kutucuklarından kurtulursunuz. İşte bu taktiği olabilicek her hatada uygulayabilirsiniz.
Not : file_text_open_write ile açılan dosyalar , olmasa bile otomatik yaratılır. Write ile dosya hem yaratılır hem de dosya yazılmak için açılmıştır anlamı verir ve bundan sonraki işlemlerinizi sadece dosyaya yazı yazarak halledebilirsiniz.
Oyununuzda kullanırsanız Credite gerek yok. Lutfen +rep veriniz.