我正在尝试制作音乐播放系统。我创建了一个名为 Circle 的类,它定义了按钮及其属性,该类有一个名为 click() 的方法,用于检测屏幕中的特定区域是否被点击。
def click(self):
"""
In general, point x and y must satisfy (x - center_x)^2 + (y - center_y)^2 <= radius^2
"""
current_mouse_position = pygame.mouse.get_pos()
value_of_equation_at_current_mouse_position = (current_mouse_position[0]-self.x)**2+(current_mouse_position[1]-self.y)**2
if (value_of_equation_at_current_mouse_position <= self.radius**2):
if pygame.mouse.get_pressed()[0]:
return True
else:
return False
我想在单击时切换播放和暂停按钮。我的逻辑:
if btn_play.click():
if togglePlayaPause == 1:
if paused:
pygame.mixer.music.unpause()
else:
pygame.mixer.music.play()
played = 1
togglePlayaPause = togglePlayaPause ^ 1
pygame.time.wait(250)
print("clicked")
a = 0
b = 1024
paused = False
if togglePlayaPause == 0:
pygame.time.wait(550)
if btn_pause.click():
pygame.mixer.music.pause()
print("paused")
paused = True
newSong = 0
played = 0
togglePlayaPause = togglePlayaPause ^ 1
pygame.time.wait(250)
if togglePlayaPause == 1:
btn_play.draw()
else:
btn_pause.draw()
由于播放和暂停按钮位于相同的坐标上,因此 clik() 方法对两者都返回 true,并且两个 if 语句都执行,结果音乐在播放一段时间后暂停。我该如何解决这个问题?
相关分类