0
我正在寫一個遊戲內存版本。我有兩個組 - 一個用於「封面」,一個用於卡片本身。這些封面是爲了隱藏卡片而放在卡片上的那些封面。我無法弄清楚的問題是,當用戶點擊其中一張卡片時,我使用kill()
來移除封面卡片和下方顯示的卡片(基本上是翻轉過的),但是我無法弄清楚如何找到組內下方卡片的位置。我怎樣才能找出用戶點擊哪張卡?找出用戶點擊了哪張卡(精靈)
我正在寫一個遊戲內存版本。我有兩個組 - 一個用於「封面」,一個用於卡片本身。這些封面是爲了隱藏卡片而放在卡片上的那些封面。我無法弄清楚的問題是,當用戶點擊其中一張卡片時,我使用kill()
來移除封面卡片和下方顯示的卡片(基本上是翻轉過的),但是我無法弄清楚如何找到組內下方卡片的位置。我怎樣才能找出用戶點擊哪張卡?找出用戶點擊了哪張卡(精靈)
答案取決於你如何顯示圖像。這是使用Button子類的mcve。這允許實例攜帶識別信息並使用綁定方法作爲命令。
import tkinter as tk
root = tk.Tk()
class Card(tk.Button):
hide = 'XXX'
def __init__(self, txt):
super().__init__(root, text=self.hide)
self.txt = txt
self.exposed = False
def flip(self):
self['text'] = self.hide if self.exposed else self.txt
self.exposed = not self.exposed
for i, txt in enumerate(('one', 'two')):
card = Card(txt)
card['command'] = card.flip
card.grid(row=0, column=i)
#root.mainloop() # uncomment if run on command line without -i
吶喊,發佈這個答案後,我注意到,標籤是'pygame'而不是'tkinter'。人們經常使用tkinter來進行這樣的紙牌遊戲。我不知道哪些tkinter替代品可以適用於pygame。 –
我建議你用最後一句話替換標題。索引只是識別卡片的一種方式。看到我的答案另一個。 –
[pygame鼠標點擊檢測]可能的重複(http://stackoverflow.com/questions/10990137/pygame-mouse-clicking-detection) – sloth