下载
pip install pygame
最新版2.0.1
pygame.display
pygame.display.set_model()创建窗口
pygame.display.flip()刷新
pygame.display.set_caption()设置窗口名称
pygame.display.seticon()设置窗口图标
详见http://www.pygame.org/docs/ref/display.html
pygame.surface
表示图像
详见http://www.pygame.org/docs/ref/surface.html
这里主要讲一下
比如游戏中我们要做一些特效,如植物大战僵尸中僵尸的寒冰效果
就可以用get_at(),set_at()设置像素颜色
def paint(self,color):
self.color=color
s=pygame.Surface((self.image.get_width(),self.image.get_height()))
s=s.convert_alpha()
for x in range(self.image.get_width()):
for y in range(self.image.get_height()):
RGBA=self.image.get_at((x,y))
if RGBA[0]!=None:
RGBA[0]=color[0]
if RGBA[1]!=None:
RGBA[1]=color[1]
if RGBA[2]!=None:
RGBA[2]=color[2]
#if RGBA[3]!=None:
# RGBA[3]=color[3]
s.set_at((x,y),RGBA)
return s
除外再讲一下
一般情况下RGBA中A(透明度)表现不出来
需convert_alpha()
这个方法十分好用
还能加快渲染速度
pygame.image.load('sth')->pygame.Surface
pygame.Rect
详见http://www.pygame.org/docs/ref/rect.html
pygame.Surface.get_rect()->pygame.Rect
这个可以理解为存放图像的容器
pygame.transform
详见http://www.pygame.org/docs/ref/transform.html
用于处理图像,可以实现如植物大战僵尸坚果保龄球坚果的旋转,阳光菇的长大等等
注意有一个坑点
每一帧调用pygame.transform.rotate(Surface,1)时,你以为是每一帧旋转一度,但是实际上图像会出现严重变形,正确的方法是new_Sunface=pygame.transform.rotate(old_Surface,a),a+=1