猿问

Pygame 鼠标点击 | 在音乐播放中切换播放暂停

我正在尝试制作音乐播放系统。我创建了一个名为 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 语句都执行,结果音乐在播放一段时间后暂停。我该如何解决这个问题?


繁花不似锦
浏览 379回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答