如何隐藏和显示 python 中的演员

How can I hide and show actors in python

所以我正在制作这个游戏,并且我有作为演员的播放按钮,我该如何制作才能在我点击它时消失?在 windows.

上使用 pgzero

PS: 除了消失的部分,我什么都记下来了。

playbox = Actor("playbox")
createbox = Actor("createbox")
customizebox = Actor("customizebox")
choose_quiz = Actor("choosequiz")

mainboxes = [playbox, createbox, customizebox]

playbox.move_ip(200, 250)
createbox.move_ip(200,360)
customizebox.move_ip(200,470)  
choose_quiz.move_ip(0, 0)

def draw():
    
    playbox.draw()
    createbox.draw()
    customizebox.draw()  

def on_mouse_down(pos):
    #i need 'playbox' to dissapear when I click it
    if playbox.collidepoint(pos):
        print("working")
        screen.clear()
        screen.blit("choosequiz", (0, 0))

你应该使用列表来绘制Actor

def draw():
    for item in mainboxes:
        item.draw()

现在您可以从 mainboxes 中删除 playbox 以将其从屏幕中删除

def on_mouse_down(pos):
    global mainboxes

    #i need 'playbox' to dissapear when I click it
    if playbox.collidepoint(pos):
        print("working")
        screen.clear()
        screen.blit("choosequiz", (0, 0))
   
        # keep boxes except playbox
        mainboxes = [box for box in mainboxes if box != playbox]

        # or 
        if playbox in mainboxes:
            mainboxes.remove(playbox)

如果你再次添加演员到 mainboxes 那么它会再次显示。


顺便说一句:

使用普通 PyGame,您可以将对象保留在 pygame.sprites.Group 中,并且它具有简单地从该组中删除对象的功能 - object.kill()