有时,你用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

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

pygame “音乐盒”---- 播放一首歌& 点击对话框后背景以及对话框大小改变的更多相关文章

  1. Android之通过网络播放一首简单的音乐

    首先,附上程序执行后的效果.例如以下图所看到的: 一.部署一个web项目到tomcatserver上: 1.这个小程序是结合网络来播放一首音乐的,首先,把我们搞好的一个web项目放置在tomcat安装 ...

  2. [zt]给你的Mp4大换血,精选Touch里3年收集的900多首歌,"经典不忍去的""最新近流行的",与你共享~~

    如果你是音乐爱好者: 这些歌, 请戴上耳机, 调大音量, 一个人听 ,全世界 都是你的!!!!! (一)这些歌很温暖,没有金属味,适合有阳光的午后,很悠闲... [Anaesthesia]Maximi ...

  3. Python使用Pygame.mixer播放音乐

    Python使用Pygame.mixer播放音乐 frequency这里是调频率... 播放网络中的音频: #!/usr/bin/env python # -*- coding: utf-8 -*- ...

  4. mciSendString 多线程播放多首音乐 & 注意事项

    昨天晚上遇到一个问题: 使用 mciSendString  控制播放多首音乐的时候,出现最后一次播放的音乐无法通过 mciSendString ("close mp3") 关闭音乐 ...

  5. 09、 在QQ音乐中查找七里香这首歌的精彩评论

       找到七里香这首歌的精彩评论      URL https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?g_tk=5381&l ...

  6. SICAU-OJ:要我唱几首歌才能够将你捕捉

    要我唱几首歌才能够将你捕捉 题意: 有N种颜色的牛,现在可以执行以下两种操作: 1.抓捕一只牛,代价为ai: 2.花费x的代价使用魔法,让所有颜色加1,N会变为1. 求得到N种颜色的牛最少花费的代价. ...

  7. BUUCTF-来首歌吧

    来首歌吧 歌曲题目一般就是整个摩斯电码 看上面的样子应该就是摩斯电码解密一下 ..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ...

  8. 让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边 点击链接后不跳转可以设置成

    让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边     点击链接后不跳转可以设置成     1.<a href="javascri ...

  9. Android实现点击通知栏后,先启动应用再打开目标Activity ,极光推送等推送的也可以参考一下(转)

    我因为项目中集成了极光推送,推送的通知栏点开需要确定进入哪个界面就参考了这边文章,感谢作者的无私. 标签: 情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Servi ...

随机推荐

  1. SelectSingleNode和SelectNodes区别

    SelectSingleNode:选择匹配 XPath 表达式的第一个 XmlNodeSelectNodes:选择匹配 XPath 表达式的结点集合 XmlNodeList

  2. hdu 4612 Warm up(缩点+树上最长链)

    本来就是自己负责图论,结果水了= = 题目其实很裸,就是求桥的数量,只是要新加上一条边罢了.做法:先缩点.再在树上搜最长链(第一场多校的hdu 4607Park Visit就考了最长链,小样,套个马甲 ...

  3. git - 搭建git仓库

    1. 更新git版本: http://codelife.me/blog/2013/06/25/upgrade-git-on-centos-6-4/ 2. 建立git仓库: git init --bar ...

  4. linux下查看串口信息

    rs232串口通信接口:当通信距离较近时(<12m),可以使用电缆线直接连接,若距离较远,需附加调制解调器. 9个脚针的定义: CDC数据载波检测,RXD接收数据,TXD发送数据,DTR数据中断 ...

  5. java制作证书的工具keytool用法

    一.keytool的概念 keytool 是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务.在 ...

  6. JAX-WS

    JAX-WS(Java API for XML Web Services)规范是一组XML web services的JAVA API,JAX-WS允许开发者可以选择RPC-oriented或者mes ...

  7. C# 替换文本文件中的某一行

    C# 替换文本文件中的某一行 (要求此文件存在) /// <summary> /// LineIndex 表示新的内容所在的行位置 /// </summary> /// < ...

  8. [原创]谷歌插件 - YE启动助手(YeLauncher)

    版本:v1.1 更新时间:2013/11/01 * 代码完善 + 右键关于显示当前版本号,点击并链接到软件帮助页 版本:v1.0 更新时间:2013/10/20 + 插件原型

  9. cadence异型孔

    1:画route path的边框,画在board geometry的ncroute_path层上,可以用zcopy (暂时没用过)      没有的话可能:WARNING: No route path ...

  10. ios游戏开发--cocos2d学习(2)

    在第一节中简单介绍了2d项目模板HelloWorld的基础代码,并做了一点小小的改变,像触摸接收.旋转.移动和颜色转变序列CCSequence的使用等等,2d本身封装好了很多方便使用的动作,只需要调用 ...