- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,442
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 9 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,207
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
CheckBox sınıfına çok benzer, bu yüzden onu kullanmak için tek yapmanız gereken kullanıcı arayüzünü değiştirmek. ui.CheckBox() -> ui.ToggleSwitch()
ve "ON_UNCKECK" ile ilgili herhangi bir sorununuz varsa
self.checkBox.SetEvent(ui.__mem_func__(self.SetAllColor), "ON_UNCKECK", False)
sadece düzeltin
self.checkBox.SetEvent(ui.__mem_func__(self.SetAllColor), "ON_UNCHECK", False)
İçerik Hakkında Önemli Bilgilendirme
- Raporlama: Bu içerik daha önce paylaşılmışsa veya tekrar eden bir gönderi olduğunu düşünüyorsanız, durumu bildirerek rapor edebilirsiniz.
- Kaynak Uyarısı: İçerik, farklı bir kaynaktan alınmıştır. Bu nedenle içeriğin doğruluğunda eksiklikler veya hatalar olabileceğini lütfen göz önünde bulundurun.
- Bağlantı Geçerliliği: Paylaşılan indirme bağlantıları zaman içinde geçersiz hale gelebilir. Böyle bir durumla karşılaşırsanız, bildirmeniz halinde bağlantı güncellenecektir.
- Uzmanlık Sınırlaması: Metin2 geliştiriciliği konusunda profesyonel bir uzmanlık alanına sahip değilim. Bu nedenle karşılaşabileceğiniz hataları veya önerilerinizi, konu altından iletmeniz durumunda elimden gelen desteği sağlamaya çalışırım.
Kod:
import math
MAIN_PATH = "d:/ymir work/ui/game/toggle_switch/special/"
class ToggleSwitch(Window):
def __init__(self):
Window.__init__(self)
self._Initialize()
self.CreateElements()
def __del__(self):
Window.__del__(self)
self._Initialize()
def _Initialize(self):
self.backgroundImage = None
self.checkImage = None
self.eventFunc = { "ON_CHECK" : None, "ON_UNCHECK" : None, }
self.eventArgs = { "ON_CHECK" : None, "ON_UNCHECK" : None, }
self.isChecked = False
self.animationProgress = 0
self.animationDuration = 10
self.isAnimating = False
self.uncheckedXPosition = 0
self.checkedXPosition = 13
self.animationDistance = self.checkedXPosition - self.uncheckedXPosition
def CreateElements(self):
self.backgroundImage = ImageBox()
self.backgroundImage.SetParent(self)
self.backgroundImage.AddFlag("not_pick")
self.backgroundImage.SetPosition(0, 0)
self.backgroundImage.LoadImage(MAIN_PATH + "bg.png")
self.backgroundImage.Show()
self.checkImage = ImageBox()
self.checkImage.SetParent(self.backgroundImage)
self.checkImage.AddFlag("not_pick")
self.checkImage.SetPosition(self.uncheckedXPosition, 0)
self.checkImage.LoadImage(MAIN_PATH + "Unchecked.png")
self.checkImage.Show()
self.textInfo = TextLine()
self.textInfo.SetParent(self)
self.textInfo.SetPosition(0, 0)
self.textInfo.SetWindowHorizontalAlignRight()
self.textInfo.Show()
self.SetSize(self.backgroundImage.GetWidth(), self.backgroundImage.GetHeight())
self.backgroundImage.SetWindowHorizontalAlignCenter()
def SetTextInfo(self, info, x = 50, y = 0):
if self.textInfo:
self.textInfo.SetText(info)
self.textInfo.SetPosition(x, y)
def SetCheckStatus(self, flag):
if flag != self.isChecked:
self.isChecked = flag
self.StartAnimation()
def GetCheckStatus(self):
if self.checkImage:
return self.isChecked
return False
def SetEvent(self, func, *args) :
result = self.eventFunc.has_key(args[0])
if result :
self.eventFunc[args[0]] = func
self.eventArgs[args[0]] = args
else :
print "[ERROR] ui.py SetEvent, Can`t Find has_key : %s" % args[0]
def OnMouseLeftButtonUp(self):
if not self.isAnimating:
self.isChecked = not self.isChecked
self.StartAnimation()
if self.isChecked and self.eventFunc["ON_CHECK"]:
apply(self.eventFunc["ON_CHECK"], self.eventArgs["ON_CHECK"])
elif not self.isChecked and self.eventFunc["ON_UNCHECK"]:
apply(self.eventFunc["ON_UNCHECK"], self.eventArgs["ON_UNCHECK"])
def StartAnimation(self):
self.isAnimating = True
self.animationProgress = 0
self.checkImage.Show()
def OnRender(self):
if self.isAnimating:
self.animationProgress += 1
progress = float(self.animationProgress) / self.animationDuration
if progress <= 1:
x_offset = int(math.sin(progress * math.pi / 2) * self.animationDistance)
if self.isChecked:
self.checkImage.SetPosition(self.uncheckedXPosition + x_offset, 0)
self.checkImage.LoadImage(MAIN_PATH + "Checked.png")
else:
self.checkImage.SetPosition(self.checkedXPosition - x_offset, 0)
self.checkImage.LoadImage(MAIN_PATH + "Unchecked.png")
else:
self.isAnimating = False
self.animationProgress = 0
if self.isChecked:
self.checkImage.SetPosition(self.checkedXPosition, 0)
self.checkImage.LoadImage(MAIN_PATH + "Checked.png")
else:
self.checkImage.SetPosition(self.uncheckedXPosition, 0)
self.checkImage.LoadImage(MAIN_PATH + "Unchecked.png")
Ekli dosyalar
- Katılım
- 17 Nis 2013
- Konular
- 74
- Mesajlar
- 888
- Online süresi
- 1mo 22d
- Reaksiyon Skoru
- 595
- Altın Konu
- 0
- Başarım Puanı
- 211
- Yaş
- 27
- MmoLira
- 11,757
- DevLira
- 150
Merhabalar,
Paylaşımınız için teşekkür ederim.
İyi forumlar.
Paylaşımınız için teşekkür ederim.
İyi forumlar.
- Katılım
- 26 Tem 2023
- Konular
- 451
- Mesajlar
- 6,327
- Çözüm
- 28
- Online süresi
- 2mo 26d
- Reaksiyon Skoru
- 3,414
- Altın Konu
- 133
- Başarım Puanı
- 249
- MmoLira
- 37,454
- DevLira
- 12
paylaşımın için teşekkür ederim.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 8
- Görüntüleme
- 816
- Cevaplar
- 42
- Görüntüleme
- 4K
- Cevaplar
- 4
- Görüntüleme
- 265
- Cevaplar
- 2
- Görüntüleme
- 269
- Cevaplar
- 8
- Görüntüleme
- 690







