如何隐藏和显示 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()
所以我正在制作这个游戏,并且我有作为演员的播放按钮,我该如何制作才能在我点击它时消失?在 windows.
上使用 pgzeroPS: 除了消失的部分,我什么都记下来了。
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()