有时,你用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. [swustoj 1023] Escape

    Escape     Description BH is in a maze,the maze is a matrix,he wants to escape! Input The input cons ...

  2. 继承在WCF中的问题和解决办法

    1. 问题 假设有代码如下: [ServiceContract] public interface IA { [OperationContract] string M1(); } [ServiceCo ...

  3. CSS的伪元素(二)

    随便聊聊CSS的伪元素,虽然它们在项目开发中用的并不多,但确实很有用,在项目中不用它,是因为大家不能了解它们,下面是一个工作场景,如有四个按钮,分别是建立,编辑,删除和修改,而我们要求这在前台显示的汉 ...

  4. Informatica 9.1常用查询

    select a.mapping_name, a.mapping_id, a.subject_id, a.is_valid, b.pv_precision, c.pv_value, b.pv_defa ...

  5. java web 学习十五(jsp基础语法)

    任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...

  6. HDU 3853-loop(概率dp入门)

    题意: r*c个方格,从(1,1)开始在每个方格可释放魔法(消耗能量2)以知,释放魔法后可能在原地.可能到达相邻的下面格子或右面格子,给出三者的概率 求要到达(R,C)格子,要消耗能量的期望值. 分析 ...

  7. T-SQL 数据库笔试题

    1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建备份数 ...

  8. 酷派8150S(移动定制版)可用的第三方Recovery备份数据、刷机并精简系统内置APK经验

    希望使用的第三方Recovery下载地址: ClockworkMod ROM Manager - Recoveries http://clockworkmod.com/rommanager 适配的型号 ...

  9. 学习笔记——XSLT转换器的使用(Xalan和Saxon) .(转)

    转自:http://blog.csdn.net/crystalbruce/article/details/7401602 XSLT分为两类: 1:客户端转换:需要浏览器的支持. 2:服务器转换:需要使 ...

  10. SpannableString 记录(转)

    引用 http://blog.csdn.net/rockcoding/article/details/7231756 TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接 ...