有时,你用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. Linux C enum

    /**************************************************************************** * Linux C enum * * 说明: ...

  2. Java [Leetcode 198]House Robber

    题目描述: You are a professional robber planning to rob houses along a street. Each house has a certain ...

  3. Android 快速开发框架XUtils

    转载自:http://www.apkbus.com/forum.php?mod=viewthread&tid=241060&highlight=xUtils 最近搜了一些框架供初学者学 ...

  4. Android 版本自动更新

    截图如下: 代码实现如下: package com.update.apk; import java.io.BufferedReader; import java.io.File; import jav ...

  5. MySQL基础之第6章 创建、修改和删除表 .

    6.1.创建表 6.1.1.创建表的语法形式 CREATE TABLE 表名 ( 属性名 数据类型 [完整性约束条件],属性名 数据类型 [完整性约束条件],...... 属性名 数据类型); 完整性 ...

  6. .NET之美——C#中的委托和事件(续)

    C#中的委托和事件(续) 引言 如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识.但那些远不是委托和事件的全部内容,还有很多的地方没有涉及.本文将讨论委托和事件一些更为 ...

  7. hdu 2818 Building Block(加权并查集)2009 Multi-University Training Contest 1

    题意: 一共有30000个箱子,刚开始时都是分开放置的.接下来会有两种操作: 1. M x y,表示把x箱子所在的一摞放到y箱子那一摞上. 2. C y,表示询问y下方有多少个箱子. 输入: 首行输入 ...

  8. [Everyday Mathematics]20150114

    设 $a_0$, $d$ 给定, $a_k=a_0+kd$, $k=0,1,\cdots,n$. 试求如下 $n+1$ 阶行列式的值: $$\bex \sev{\ba{ccccc} a_0&a ...

  9. codedorces 260 div2 A题

    水题,扫描一遍看是否出现价格低质量高的情况. #include<cstdio> #include<string> #include<vector> #include ...

  10. C++ 使用Htmlcxx解析Html内容(VS编译库文件)

    1.下载Htmlcxx,http://sourceforge.net/projects/htmlcxx/ 2.解压htmlcxx-0.85.tar.gz 3.打开htmlcxx.vcproj,注意是h ...