zoukankan      html  css  js  c++  java
  • 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

                        

                          

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

  • 相关阅读:
    项目常用组建摘记
    How do I resolve the CodeSign error: CSSMERR_TP_NOT_TRUSTED?
    使用wkwebview后,页面返回不刷新的问题
    前端性能监控方案window.performance 调研(转)
    UC浏览器中,设置了position: fixed 的元素会遮挡z-index值更高的同辈元素
    zepto中给不存在的元素设置样式并绑定事件的坑
    js中的路由匹配
    input光标高度问题
    javascript创建css、js,onload触发callback兼容主流浏览器的实现
    js input输入事件兼容性问题
  • 原文地址:https://www.cnblogs.com/Rex7/p/4752583.html
Copyright © 2011-2022 走看看