在我的GUI Python游戏中尝试Undraw

时间:2016-05-11 01:53:04

标签: python user-interface

我正在为我的compsci课程的最终项目创建一个Memory Matching游戏。

到目前为止,一旦你点击开始游戏,我就会在GUI窗口中显示这些卡片。 一旦开始游戏被击中,所有具有面值的牌立即显示在牌的背面。 (所以你永远不会真正看到卡片前端)

我这样做的理由是,当你点击一张卡片时,我会简单地取消后面的卡片图像,而不是“翻转”任何东西。

然而,我一直收到错误,当我没有收到错误时,它只会导致我的程序说“无响应”并让我必须重新启动Shell。

以下是我认为与我的问题相关的一些小部分代码:

  for firstcard in range(6):
            firstrow = self.deck.dealCard()
            randomsuite = firstrow.getSuite()
            randomrank = firstrow.getRank()
            #Real image with face value of card
            realCard = Image(Point(xpos,ypos),"playingcards/"+ (randomsuite) + str(randomrank) +".gif")
            realCard.draw(win)
            #Red Back of card to cover image
            firstcard = Image(Point(xpos,ypos),"playingcards/b1fv.gif")
            firstcard.draw(win)
            #pushes the card to the right a bit
            xpos += 100


while not Quitbutton.isClicked(p):
        #Start Game
        if StartGameButton.isClicked(p) and player == True:
            if first == True:
                Game.gameboard(win,150,125)
                firstcard = Image(Point(xpos,ypos),"playingcards/b1fv.gif")
                first = False
                if StartGameButton.isClicked(p):
                    p = win.getMouse()
                    if firstcard.isClicked(p):
                        firstcard.undraw()
                        p = win.getMouse()

截至目前,您可以看到我的代码if firstcard.isClicked(p):。但是,这实际上并不起作用,因为我的isClicked函数是Button类的一部分,因此,只有在处理按钮而不是图像时才有效。所以我不完全确定如何选择一张卡片,以及如何显示该卡片已被点击,因此应该是未拉出的

0 个答案:

没有答案