Make Game with Python & Pygame (3)

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

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

不少游戏都不仅是用简单的画图函数就能够完成的,还须要各类各样的图片(也被称做精灵)pygame能够加载到surface对象上的图片格式有PNG, JPG, GIF和BMP。关于格式的不一样地方能够上网搜索。字体

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

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

方法使用以下:code

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

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

字体图片

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

import pygame, sys
from 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 time
time.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的介绍,并且注释解释说明写的都很详细,实在是本好书啊。
相关文章
相关标签/搜索