- Mesaj
- 291
- Çözümler
- 13
- Beğeni
- 128
- Puan
- 519
- Ticaret Puanı
- 0
Selamlar, MmoTutkunları Altayapı dosyalarını kullanarak official'a yakın bir oyun geliştirmeye çalışıyorum.
Bu işi hobi olarak yapıyorum bir amacım yok, sadece keyifli
Geliştirme sürecinde hızlı giriş ekranının olmaması bana çok zaman kaybettiriyordu, şuan herhangi bir forumda bulunabilen hesap kayıt sistemlerini inceledim.
Hepsi neredeyse birbirinin kopyası ve çok fazla kod tekrarı vardı. 10 tane buton var, 10 tane fonksiyon yazmışlar her biri için.
Bir bool değişken oluşturuyor, kodun 20 tane yerinde bunu sürekli set'liyor.
İçim rahat etmedi, kendim yazayım dedim. loginBoard ve connectBoard ile çok benzer şekilde yazdım.
Minimal, kolaylıkla okunabilir, geliştirilebilir. F1'den F4'e kadar olan tuşlar ile hızlı giriş yapılabilir.
Forumumuzda da bu sistemin olmadığını gördüm, o yüzden paylaşmak istiyorum.
Testlerim sonucunda bir sorun bulamadım, eğer sistemin kendisiyle ilgili bir sorunla karşılaşırsanız yorum olarak belirtin lütfen.
Çözümleyip konuyu güncellerim.
Herkese başarılı ve sağlıklı bir yıl diliyorum
UPDATE:
Oyuna ilk girişten sonra hiçbir keyboard event'i algılanmıyordu. Karakter seçmek, yeni karakter oluşturmak, giriş ekranına dönmek.
UI çalışıyor ama key event'ler algılanmıyordu - FIXED
Sebebi:
Butonlara bağladığım event'lerde oluşturduğum fonksiyona argüman gönderiyordum. Bunu da tabii ki lambda metoduyla yapıyordum.
Python'da kesinlikle sorunsuz çalışan ifade burada çalışmıyordu ve bundan dolayı diğer key event'ler sıraya alınamıyordu.
Farklı bir syntax ile çözümledim;
gibi.
Önemli bir fark: spesifik bir parametreye argüman veremiyorsunuz.
Örneğin __OnClickButton fonksiyonunun 2 parametresi var. param1 ve param2
Şunu yapamazsınız;
Çünkü ui.py dosyasındaki yapı (ui.__mem_func__) böyle çalışmıyor. verilen argümanları kendisi sırasıyla parametrelere veriyor.
Yani şöyle olmalı;
Not: Anlatım, dosyalara ayrıldı
Bu işi hobi olarak yapıyorum bir amacım yok, sadece keyifli

Geliştirme sürecinde hızlı giriş ekranının olmaması bana çok zaman kaybettiriyordu, şuan herhangi bir forumda bulunabilen hesap kayıt sistemlerini inceledim.
Hepsi neredeyse birbirinin kopyası ve çok fazla kod tekrarı vardı. 10 tane buton var, 10 tane fonksiyon yazmışlar her biri için.
Bir bool değişken oluşturuyor, kodun 20 tane yerinde bunu sürekli set'liyor.
İçim rahat etmedi, kendim yazayım dedim. loginBoard ve connectBoard ile çok benzer şekilde yazdım.
Minimal, kolaylıkla okunabilir, geliştirilebilir. F1'den F4'e kadar olan tuşlar ile hızlı giriş yapılabilir.
Forumumuzda da bu sistemin olmadığını gördüm, o yüzden paylaşmak istiyorum.
Testlerim sonucunda bir sorun bulamadım, eğer sistemin kendisiyle ilgili bir sorunla karşılaşırsanız yorum olarak belirtin lütfen.
Çözümleyip konuyu güncellerim.
Herkese başarılı ve sağlıklı bir yıl diliyorum

UPDATE:
Oyuna ilk girişten sonra hiçbir keyboard event'i algılanmıyordu. Karakter seçmek, yeni karakter oluşturmak, giriş ekranına dönmek.
UI çalışıyor ama key event'ler algılanmıyordu - FIXED
Sebebi:
Butonlara bağladığım event'lerde oluşturduğum fonksiyona argüman gönderiyordum. Bunu da tabii ki lambda metoduyla yapıyordum.
Python'da kesinlikle sorunsuz çalışan ifade burada çalışmıyordu ve bundan dolayı diğer key event'ler sıraya alınamıyordu.
Farklı bir syntax ile çözümledim;
Kod:
self.button.SetEvent(ui.__mem_func__(self.__OnClickButton), 1)
Önemli bir fark: spesifik bir parametreye argüman veremiyorsunuz.
Örneğin __OnClickButton fonksiyonunun 2 parametresi var. param1 ve param2
Şunu yapamazsınız;
Kod:
self.button.SetEvent(ui.__mem_func__(self.__OnClickButton), param1=15, param2=34)
Yani şöyle olmalı;
Kod:
self.button.SetEvent(ui.__mem_func__(self.__OnClickButton), 15, 34)
Not: Anlatım, dosyalara ayrıldı
Dosya Eklentileri
Son düzenleme: