Python 当我按下一个按钮时,有两个按钮被按下,pygame
当我按下一个按钮时,有两个按钮被按下。 我制作的图像就像一个按钮,但当我按下第一个按钮时,第二个按钮也被按下。 我是pygame的新手,尝试在单击每个按钮时让按钮做不同的事情Python 当我按下一个按钮时,有两个按钮被按下,pygame,python,pygame,Python,Pygame,当我按下一个按钮时,有两个按钮被按下。 我制作的图像就像一个按钮,但当我按下第一个按钮时,第二个按钮也被按下。 我是pygame的新手,尝试在单击每个按钮时让按钮做不同的事情 导入pygame 导入时间 pygame.init(); screen=pygame.display.set_模式((340340340)); img=pygame.image.load('3.gif') iimg=pygame.image.load('2.gif') mg=pygame.image.load('4.gif
导入pygame
导入时间
pygame.init();
screen=pygame.display.set_模式((340340340));
img=pygame.image.load('3.gif')
iimg=pygame.image.load('2.gif')
mg=pygame.image.load('4.gif').convert()
g=pygame.image.load('5.gif')
waitingForInput=False
pygame.display.set_标题(“西蒙”);
BEEP1=pygame.mixer.Sound('BEEP1.wav'))
BEEP2=pygame.mixer.Sound('BEEP2.wav'))
BEEP3=pygame.mixer.Sound('BEEP3.wav'))
BEEP4=pygame.mixer.Sound('BEEP4.wav'))
屏幕blit(img,(0,0))
筛网布氏硬度(mg,(150,0))
pygame.display.flip()
def main():
尽管如此:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
返回错误
如果event.type==pygame.MOUSEBUTTONDOWN:
鼠标位置=event.pos
如果img.get_rect().collidepoint(鼠标位置):
打印('按钮在{0}处按下。'格式(鼠标位置))
BEEP1.播放()
屏幕光点(iimg,(0,0))
pygame.display.flip()
时间。睡眠(.30)
屏幕blit(img,(0,0))
pygame.display.flip()
如果mg.get_rect().collidepoint(鼠标位置):
打印('按钮在{0}处按下。'格式(鼠标位置))
BEEP2.播放()
屏幕光点(g,(150,0))
pygame.display.flip()
时间。睡眠(.30)
筛网布氏硬度(mg,(150,0))
pygame.display.flip()
main()
如果在曲面上调用get_rect
,则返回的结果rect
将始终具有x
和y
值0
因此,当您在事件循环中运行if img.get_rect().collidepoint(mouse_pos)
时,您不会检查曲面是否被单击。检查鼠标位置是否在屏幕的左上角
也许可以使用一些打印语句来检查自己
您可以做的是为主循环外的每个按钮创建一个Rect
,然后使用这些Rect进行blitting:
...
img = pygame.image.load('3.gif')
img_rect = img.get_rect()
...
mg = pygame.image.load('4.gif').convert()
mg_rect = img.get_rect(topleft=(150,0))
...
while True:
...
if event.type == pygame.MOUSEBUTTONDOWN:
mouse_pos = event.pos
if img_rect().collidepoint(mouse_pos):
BEEP1.play()
if mg_rect ().collidepoint(mouse_pos):
BEEP2.play()
screen.blit(img, img_rect)
screen.blit(mg, mg_rect)
请注意,您还应该避免在主循环中调用time.sleep
或多次调用pygame.display.flip()
另一个解决方案是使用pygame的Sprite
类,它允许您将曲面
和矩形
组合在一起。另一个注意事项是:您可能希望在个人资料中将苹果的软件编程程序更改为苹果的软件编程程序
)