- Mesaj
- 4.608
- Çözümler
- 194
- Beğeni
- 4.315
- Puan
- 1.850
- Ticaret Puanı
- 6
Konu kadim dostum S ve J den alıntıdır. (ulaş bu forumda hesabın yok olsaydı etiketlerdim knk)
Merhaba arkadaşlar, bugün cncn_m2 projesini paylaştığımdan beri sürekli olarak "Bu yazıları nasıl kapatıyoruz" şeklinde mesajlar alıyordum. Hızlı şekilde cevap veriyordum, konu olarak açmak daha iyi olacağını düşündüm. Yazılardan kastımızı aşağıdaki resimden anlayabilirsiniz.
Birçok kişinin yaptığı hata bu kısmı kapatmak için python scripti üzerinde düzenleme yapmak. Önce bana göre hatalı olan yöntemden bahsedeyim.
root/game.py dosyasını açıp, aşağıdaki kodu buluyoruz.:
Merhaba arkadaşlar, bugün cncn_m2 projesini paylaştığımdan beri sürekli olarak "Bu yazıları nasıl kapatıyoruz" şeklinde mesajlar alıyordum. Hızlı şekilde cevap veriyordum, konu olarak açmak daha iyi olacağını düşündüm. Yazılardan kastımızı aşağıdaki resimden anlayabilirsiniz.
Birçok kişinin yaptığı hata bu kısmı kapatmak için python scripti üzerinde düzenleme yapmak. Önce bana göre hatalı olan yöntemden bahsedeyim.
root/game.py dosyasını açıp, aşağıdaki kodu buluyoruz.:
Python:
if self.isShowDebugInfo:
self.UpdateDebugInfo()
Yorum satırı haline getiriyoruz ya da siliyoruz.:
Python:
#if self.isShowDebugInfo:
#self.UpdateDebugInfo()
Peki düzgün şekilde nasıl yapacağız. Userinterface.cpp dosyasında debug parametresini düzenleyeceğiz. Kendi projemden örnek vereceğim.
C++:
C++:
C++:
#ifdef _DISTRIBUTE
stRegisterDebugFlag ="__DEBUG__ = 0";
#else
stRegisterDebugFlag ="__DEBUG__ = 1";
#endif
Orjinal mainline kodlarında bu şekilde, Anlamı _DISTRIBUTE olarak derleniyorsa 0 aksi taktirde 1. Bende cncn_m2 projesini release olarak derlediğimden burası 1 oluyor ve bu sebeple client içinde debug bilgileri gözüküyor. Aşağıdaki gibi yaparak üstünkörü bir çözüm elde edebiliriz.
C++:
C++:
#ifdef _DISTRIBUTE
stRegisterDebugFlag ="__DEBUG__ = 0";
#else
stRegisterDebugFlag ="__DEBUG__ = 0";
#endif
Elbette bu geçici bir çözüm. Şu şekilde düzenlersek daha iyi olur.
C++:
C++:
#ifdef _DEBUG
stRegisterDebugFlag ="__DEBUG__ = 1";
#else
stRegisterDebugFlag ="__DEBUG__ = 0";
#endif
Burada şu şekilde ayarlamış oluyoruz. Debug olarak derleniyorsa 1 aksi taktirde 0.
// SF'ye baktığımızda aşağıdaki gibi bir yapı görüyoruz.
C++:
C++:
#ifdef NDEBUG // @warme601 _DISTRIBUTE -> NDEBUG
PyModule_AddIntConstant(builtins, "__DEBUG__", 0);
#else
PyModule_AddIntConstant(builtins, "__DEBUG__", 1);
#endif
Burada zaten bu kısımdaki mantık hatası düzeltilmiş, debug modu dışında derlendiğinde 0, debug olarak derlendiğinde 1 oluyor. Yani değişiklik yapmaya gerek yok. NDEBUG not debug anlamına yani debug değil, anlamına gelmekte biraz daha ileri ve doğru bir kullanım. Sadece örnek olması açısından ekledim.
Ve pufff, yazılar gitti.
Bir sonraki öğretici konuda görüşmek üzere... Saygılar, sevgiler...
En son bir moderatör tarafından düzenlenmiş: