• pygame “音乐盒”---- 播放一首歌& 点击对话框后背景以及对话框大小改变


              有时,你用pygame写的游戏也许需要播放一些背景音乐,该怎么做呢,直接上代码:

    下面的代码,有关于:

               1>设置对话框图标、大小、标题

               2>播放音乐

               3>设置背景图片,以及获取背景图片的矩形(通过这个矩形可以获得大小等信息)

               4>获取按键事件

    # -*- coding: cp936 -*-
    filename='Colbie Caillat - Break Through.mp3'
    link='http://en.wikipedia.org/wiki/Colbie_Caillat'
    bg='CB.jpg'
    bg2='CB2.jpg'
    bg3='CB3.jpg'
    bg4='CB4.jpg'
    b='C.jpg'
    
    
    import pygame,sys,os
    from pygame.locals import *
    import webbrowser
    def yep():
        rect=(0,0)
        n=1
        m=4
        p=1
        pygame.init()
        screen = pygame.display.set_mode((251, 201), 0, 32)
        
        #创建了一个窗口
        #设置窗口标题    
        pygame.display.set_caption("Break Through!")
        background = pygame.image.load(bg).convert()
        #设置窗口图标
        icon = pygame.image.load(b)
        pygame.display.set_icon(icon)
        #加载、播放音乐
        pygame.mixer.music.load(filename)
        pygame.mixer.music.play()
        while True:#游戏主循环 
            for event in pygame.event.get():            
                if event.type ==QUIT:                            
                    pygame.quit()
                    sys.exit()
                pressed_keys = pygame.key.get_pressed()
                if event.type==KEYDOWN:
                    #如果按下空格键,则暂停音乐,再按则继续
                    if pressed_keys[K_SPACE]:       
                       if p==1:
                          pygame.mixer.music.pause()
                          p=0
                       else:
                          pygame.mixer.music.unpause()
                          p=1
                    else:
                     #按下其他键则打开链接
                       webbrowser.open_new_tab(link)
                #如果按下鼠标左键,则变换背景图片,并且对话框的大小随着背景图片的大小而改变
                if event.type == pygame.MOUSEBUTTONDOWN:
                    n+=1
                    if n%m==0:                  
                       #screen = pygame.display.set_mode((251, 201), 0, 32)
                       background = pygame.image.load(bg).convert()
                       #获取背景图的矩形
                       rect = background.get_rect()
                       screen = pygame.display.set_mode((rect.width, rect.height))                   
                    if n%m==1:
                       #screen = pygame.display.set_mode((315, 275), 0, 32)
                       background = pygame.image.load(bg2).convert()
                       rect = background.get_rect()
                       screen = pygame.display.set_mode((rect.width, rect.height))
                    if n%m==2:
                       #screen = pygame.display.set_mode((284, 177), 0, 32)
                       background = pygame.image.load(bg3).convert()
                       rect = background.get_rect()
                       screen = pygame.display.set_mode((rect.width, rect.height))
                    if n%m==3:
                       #screen = pygame.display.set_mode((284, 177), 0, 32)
                       background = pygame.image.load(bg4).convert()
                       rect = background.get_rect()
                       screen = pygame.display.set_mode((rect.width, rect.height))
            screen.blit(background,rect)         
            pygame.display.update() 
    if __name__ == "__main__":  
        yep()  
    

               看代码注释,就差不多了。

                运行结果截图

               

              点击对话框,可以看到

               

               可以明显的看到,对话框大小改变了。代码资源下载链接:

                      http://download.csdn.net/detail/kamsau/6705279

                        

                          

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    《不完美的她》开播,网友:周公子对「白帽子」有点误会吧?
    【Web安全】浅谈缓存XSS漏洞
    十分钟教你轻松掌握「移动PE导出表」,快来学习!
    干货分享丨表哥带你学习导入表及导入表注入
    「原创」萌新也能看懂的ThinkPHP3.2.3漏洞分析
    精选好文丨简析对称加密、非对称加密和混合加密
    工程师成长道路语录(转)
    在线画UML图的工具
    6种有效的开发模型(转)
    空降经理人的挑战 (原创)
  • 原文地址:https://www.cnblogs.com/Rex7/p/4752583.html
Copyright © 2020-2023  润新知