有时,你用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. ADO和DAO的区别

    ADO(ACTIVEX DATA OBJECTS)应用层的数据访问接口ODBC 数据库驱动接口OLE DB 系统级数据访问接口DAO (DATA ACCESS OBJECTS) 对象的数据访问接口AD ...

  2. H.264码流结构解析

    from:http://wenku.baidu.com/link?url=hYQHJcAWUIS-8C7nSBbf-8lGagYGXKb5msVwQKWyXFAcPLU5gR4BKOVLrFOw4bX ...

  3. 【JSP】JSP向MySQL写入|读出中文数据——乱码问题

    注意第14行

  4. css中将div定位居中

    一直,我是认为定一个width,然后写一句margin:0 auto,就可以,但是有时也会不管用. 例如当我要定一个宽度为700的div,用相对定位定在中间.任你怎么拉伸都是居中.而position: ...

  5. HDU 5744 Keep On Movin

    Keep On Movin Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  6. Another Crisis

    题意: 给出一个树,当孩子节点为1的数量占孩子总数的T%时父节点变成1,求使根节点变成1需要叶子节点为1的最小数量. 分析: 简单的树状dp,dp[i]以i为根的子树所需的最小数量,取它所有子树中最小 ...

  7. <转>Python运行的17个时新手常见错误小结

    1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”) 该错误将发生在 ...

  8. JQuery:各种操作表单元素方法小结

    来源:http://www.ido321.com/1220.html 表单元素无处不在,已然成了Web应用不可或缺的一个部分.对表单最最最常见的操作就是获取表单元素的值或者更改表单元素的值.那在JQu ...

  9. Aggregation(1):Blending、Bagging、Random Forest

    假设我们有很多机器学习算法(可以是前面学过的任何一个),我们能不能同时使用它们来提高算法的性能?也即:三个臭皮匠赛过诸葛亮. 有这么几种aggregation的方式: 一些性能不太好的机器学习算法(弱 ...

  10. Layout No collapsible

    center 不可折叠 其它的,没有 title 没法折叠  title 使用子控件的