python 漂亮的花框音乐盒子flower frame box music player

python 漂亮的花框音乐盒子flower frame box music player

python 花框音乐盒子flower frame box music box player by lixingqiu李兴球

python 花框音乐盒子flower frame box music box player by lixingqiu李兴球

"""这是一个用海龟画图模块和pygame的混音模块制作的简易音乐播放器。
作者:李兴球,日期:2018/8/26"""

from turtle import *

def init_screen():
    """初始化屏幕"""
    screen = Screen()
    screen.setup(width,height)
    screen.bgpic("舞台.png")
    screen.title(gametitle)
    screen.delay(0)
    return screen

def init_mixer():
    """初始化混音器,注意在函数内部导入的模块的作用范围"""
    have_pygame = False

    
class Button(Turtle):
    """按钮类,每个按钮有两张图片,自带音乐"""
    
    def __init__(self,costume_list,x,y,music,width,height):
        Turtle.__init__(self,visible=False)
        self.penup()
        self.costume_list = costume_list     # 造型列表
        self.costume_index = 0               # 造型初始索引号
        self.shape(self.costume_list[self.costume_index]) # 设置造型为索引为0的图
         
    def play(self,x,y):
        """先停止音乐再播放音乐"""
        pygame.mixer.music.stop()           # 停止正在播放的音乐
        pygame.mixer.music.load(self.music)
        screen.title(gametitle + ",正在播放:" + self.music  + " 作者:李兴球")
        pygame.mixer.music.play(-1,0)    # -1表示循环播放,0表示从头开始播放
        
    def onmousemove(self,event):
        """判断鼠标指针是否在按钮坐标范围内"""


def make_button():
    """加载资源,生成播放按钮"""
    c1_list = ("Losing_Sleep0.gif","Losing_Sleep1.gif")
    [screen.addshape(image) for image in c1_list]
    music1 = "Alan Walker - Losing Sleep.mp3"
    b1 = Button(c1_list,-250,0,music1,200,150)
    screen.cv.bind("<Motion>",b1.onmousemove,add=True)
    
    c2_list = ("和兰花在一起0.gif","和兰花在一起1.gif")
    [screen.addshape(image) for image in c2_list]
    music2 = "Yanni - With An Orchid.mp3"
    b2 = Button(c2_list,00,0,music2,200,150)
    screen.cv.bind("<Motion>",b2.onmousemove,add=True)

    c3_list = ("Faded0.gif","Faded1.gif")
    [screen.addshape(image) for image in c3_list]
    music3 = "Alan Walker - Faded (纯音乐).wav"
    b3 = Button(c3_list,250,0,music3,200,150)
    screen.cv.bind("<Motion>",b3.onmousemove,add=True)
    
    c4_list = ("兰贵人0.gif","兰贵人1.gif")
    [screen.addshape(image) for image in c4_list]
    music4 = "胡伟立-兰贵人.mp3"
    b4 = Button(c4_list,-250,-200,music4,200,150)
    screen.cv.bind("<Motion>",b4.onmousemove,add=True)

    c5_list = ("Spectre0.gif","Spectre1.gif")
    [screen.addshape(image) for image in c5_list]
    music5 = "Alan Walker - Spectre.mp3"
    b5 = Button(c5_list,0,-200,music5,200,150)
    screen.cv.bind("<Motion>",b5.onmousemove,add=True)
    
    c6_list = ("新古典主义0.gif","新古典主义1.gif")
    [screen.addshape(image) for image in c6_list]
    music6 = "新古典主义-组曲.mp3"
    b6 = Button(c6_list,250,-200,music6,200,150)
    screen.cv.bind("<Motion>",b6.onmousemove,add=True)
    

if __name__ == "__main__":

    gametitle = "花框音乐盒"
    width,height = 800,600
    screen = init_screen()
    mixer_success,pygame = init_mixer()
    if mixer_success:
        print("成功初始化混音器。")
    else:
        print("初始化混音器出现问题。")
    make_button()
    screen.mainloop()

 

下载完整源代码与素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。