Metin2'de GUI eklemek için genellikle
Python ve
PyQt gibi kütüphaneler kullanılır, ancak bunun için daha kolay bir çözüm önerisi olarak
UI sistemini kullanabilirsiniz. Aşağıda bu işlemi adım adım nasıl yapacağınızı açıklıyorum:
Adım 1: Metin2 GUI Sistemi (PyQt veya Python GUI)
Metin2'de GUI'ler,
Client Source üzerinden kontrol edilir. Bu yüzden GUI'yi eklemek için
ui dosyalarını ve
GUI işleyişini ele alacağız. Ancak, Metin2'nin kendi GUI sistemi ile entegre edilecek şekilde çalışacaktır.
1.1 Boş GUI Eklemek için Yöntem:
Boş bir GUI ekranı eklemek için aşağıdaki gibi bir yapı kurabilirsiniz:
- Metin2 Client (Source) Dosyaları:
- gui.py veya ui.py gibi GUI dosyalarını düzenlemeniz gerekebilir.
- Bu dosyalarda oyun açıldığında kullanıcıya gösterilecek olan boş GUI'yi tanımlayabilirsiniz.
1.2 Python Koduyla GUI Eklemek:
Metin2'de GUI oluşturmak için Python sınıfı kullanabiliriz. Boş bir GUI oluşturduktan sonra, bu GUI'nin oyun başladığında gösterilmesi için gerekli kısımları kodlayacağız.
Aşağıda basit bir GUI ekranı eklemek için kullanılan Python kodunu bulabilirsiniz:
python
import ui
import time
class EmptyGUI(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.SetSize(200, 100) # Boyutlarını ayarlayın
self.SetTitle("Boş GUI") # GUI başlığı
self.SetPosition(400, 300) # Ekranda nereye yerleştirileceğini ayarlayın
self.Show()
def OnClose(self):
self.Hide()
def open_empty_gui():
# GUI'yi oyun başladığında ekrana getir
gui = EmptyGUI()
time.sleep(3) # 3 saniye boyunca GUI'yi göster
gui.OnClose() # GUI'yi kapat
Bu örnek, oyun başladığında bir GUI'yi ekranda gösterir ve 3 saniye sonra kapatır. Eğer GUI'nin ekranda gösterilmesi ve kapanması oyun başladığında otomatik olarak olsun istiyorsanız, GUI'yi başlatan bir fonksiyonu
game loop'a bağlamanız gerekebilir.
Adım 2: GUI'yi Oyun Başlatıldığında Gösterme
Metin2'de GUI'nin oyun başladığında gösterilmesi için ilgili kodu
game loop'a veya
başlangıçta çalışan bir fonksiyona entegre edebilirsiniz. Bunun için genellikle Metin2 Client'ın ana başlatıcı dosyasına aşağıdaki gibi bir kod ekleyebilirsiniz:
python
import game
def on_game_start():
# GUI'yi başlat
open_empty_gui()
# Bu fonksiyonu oyunun başlatma kısmına entegre edin
game.AddEvent(on_game_start)
Bu kod, oyun başladığında
on_game_start fonksiyonunu çalıştırarak GUI'yi gösterir.
Adım 3: GUI'nin Kapanması
Oyun kapandığında GUI'nin kapanması için GUI sınıfınızda bir kapanış işlevi (OnClose) tanımladığınızda, oyun kapanınca bu fonksiyon çalıştırılarak GUI otomatik olarak kaybolacaktır.
Adım 4: Kodun Entegre Edilmesi
Eğer GUI'yi daha fazla özelleştirmek isterseniz (örneğin bir animasyon eklemek veya arka planda başka işlevler yapmak gibi), GUI'yi şu şekilde daha zenginleştirebilirsiniz:
python
import ui
import sys
class EmptyGUI(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.SetSize(400, 200) # Boyutlarını ayarlayın
self.SetTitle("Boş GUI") # GUI başlığı
self.SetPosition(300, 150) # Ekranda nereye yerleştirileceğini ayarlayın
self.Show()
def OnClose(self):
self.Hide()
# Başlatmak için
gui = EmptyGUI()
Bu kodu, oyunun açılışında çağırarak boş bir GUI'yi oyun başladığında ekranda gösterip, oyun kapandığında GUI'nin kaybolmasını sağlayabilirsiniz.