博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Make Game with Python & Pygame (3)
阅读量:2226 次
发布时间:2019-05-09

本文共 2488 字,大约阅读时间需要 8 分钟。

接着来介绍Pygame一些基础的东西。

Drawing Images with pygame.image.load() and blit()

很多游戏都不只是用简单的画图函数就可以完成的,还需要各种各样的图片(也被称作精灵)pygame可以加载到surface对象上的图片格式有PNG, JPG, GIF和BMP。关于格式的不同地方可以上网搜索。

接着对上篇最后的一段代码里面的东西做些介绍。

pygame.image.load()函数返回一个surface对象用于显示图片。这个surface对象和显示窗口对象是分离的,所以我们必须把图片显示对象复制到显示窗口对象通过blit()方法。

方法使用如下:

DISPLAYSURF.blit(catImg, (catx, caty))

第一个参数是要加载的图片对象,第二个参数是有两个整数的元组分别表示图片将要显示的左上角X和Y的坐标值。

字体

游戏都需要显示文字,pygame为字体和创建文本提供了一些简单的函数。下面就是一个使用pygame字体的程序。

import pygame, sysfrom pygame.locals import *pygame.init()DISPLAYSURF = pygame.display.set_mode((400,300))pygame.display.set_caption("Hello World")WHITE = (255, 255, 255)GREEN = (0, 255, 0)BLUE = (0, 0 ,128)fontObj = pygame.font.Font('freesansbold.ttf', 32)textSurfaceObj = fontObj.render('Hello World!', True, GREEN, BLUE)textRectObj = textSurfaceObj.get_rect()textRectObj.center = (200, 150)while True:    DISPLAYSURF.fill(WHITE)    DISPLAYSURF.blit(textSurfaceObj, textRectObj)    for event in pygame.event.get():        if event.type == QUIT:            pygame.quit()            sys.exit()    pygame.display.update()
执行后的效果如图:

将字体显示在屏幕上有六个步骤:

  1. 创建一个pygame.font.Font对象
  2. 创建一个surface对象用于存放字体显示,这需要通过调用字体对象的render()方法
  3. 创建一个矩形对象通过调用surface对象的get_rect()方法。这个矩形对象将拥有字体的宽度与高度。但是top和left属性值为0
  4. 设置矩形对象的位置通过改变它的一个属性值。在这里我们设置了矩形对象的中心在200,150
  5. 将存放字体的显示对象复制到显示窗口对象(来自pygame.display.set_mode()方法返回的对象)
  6. 调用pygame.display.update()让显示窗口对象显示在屏幕上
pygame.font.Font()的构造函数的参数是一个字体文件和一个表示字体大小的整数。我们传递了"freesansbold.ttf"(这个字体来自pygame)和整数32.
render()方法的参数是一个要显示的字符串,一个BOOL类型的值决定是否需要抗锯齿,文字的颜色,文字的背景颜色。如果想要个透明的背景颜色,那么只需要在调用该方法是不传递最后一个背景颜色参数。
抗锯齿,这个是概念的东西。(略)
播放声音
播放声音甚至比显示图片更简单。首先,需要创建一个pygame.mixer.Sound对象通过调用pygame.mixer.Sound()构造函数。它需要一个字符串参数,也就是声音文件名。pygame可以加载wav, mp3,或者oog的声音格式文件。
播放声音需要调用声音对象的play()方法。如果想立即停止声音则调用stop()方法。stop()方法没有参数。下面一段加载声音的简单代码:
soundObj = pygame.mixer.Sound('beeps.wav')soundObj.play()import timetime.sleep(1)soundObj.stop()
声音对象可以造成很好的声音效果当游戏者具体做了某件事时,比如受到伤害,拾起一个硬币等。游戏最好也能有背景音乐无论游戏进行到何时。Pygame只能加载一个音乐文件用作背景音乐在一个时刻。为了加载一个背景音乐文件,调用pygame.mixer.music.load()函数传递一个关于音乐文件名的字符串。音乐文件格式可以是WAV,MPS,MIDI.
开始播放背景音乐,需要调用pygame.mixer.music.play(-1,0.0)函数,-1这个参数使背景音乐永远播放直到音乐文件末尾。如果设置为0或者比0大的整数,那么音乐就只循环传递的整数代表的那么多次,而不是永远循环。0.0表示从音乐文件开始处播放音乐。传递多少值就从多少值开始播放音乐。为了停止背景音乐,需要调用pygame.mixer.music.stop()函数,此函数没有参数。
下面的代码是关于音乐文件处理的一些方法:
pygame.mixer.music.load('backgroundmusic.mp3')pygame.mixer.music.play(-1,0.0)#....some more of your code goes here..pygame.mixer.music.stop()
上面差不多就是pygame的一些基础的东西了,然后作者就以每章一个游戏来继续pygame的介绍,而且注释解释说明写的都很详细,实在是本好书啊。

转载地址:http://mqofb.baihongyu.com/

你可能感兴趣的文章
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 初次体验!推荐刚学看这个满好的!
查看>>
AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
查看>>
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>
Java多线程学习
查看>>
检查Linux服务器性能
查看>>