Pygame是一个跨平台的Python库,由Pete Shinners创作,遵循GNU Lesser General Public License协议。Pygame专为第九艺术设计,包含图像和声音库,建立在SDL基础上。Pygame的目标是允许实时电子游戏的研发,而无需依赖低阶语言,如c语言或更低阶的组合语言。Pygame的设计理念是将游戏的功能和理念简化,主要集中在游戏逻辑上,所有的资源结构可以由高级语言,如Python提供。Pygame最初是为了代替突然停止的pySDL而创建的。

介绍

包含图像、声音。建立在SDL基础上,允许实施电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python

Pygame代替突然停止的pySDL。

Pygame作者是Pete Shinners协议为GNU Lesser General Public License。

兼容性

Pygame应用程序能够在Android手机和平板执行,采用pygame对于Android的子集(pgs4a)。支持Android的声音,振动,键盘和加速。但是,pygame应用程序无法在iOS上执行,且pgs4a的主要限制包括缺乏对于多点触控的支持,这使得双指缩放以及旋转无法使用。作为pygame在Android子集的替代方案,Kivy库包含了多点触控及iOS的支持。

示例代码

以下是一个简单的Pygame示例代码,展示了如何加载和移动一个图像:

```Python

import sys, pygame

pygame.init()

开本 = width, height = 320, 240

speed = [2, 2]

黑色 = 0, 0, 0

screen = pygame.display.set_调式(size)

ball = pygame.意象load("ball.png")

ballrect = 吉帕侬·克珑卡弗get_rect()

while 1:

for event in pygame.event.get():

if event.type == pygame.QUIT: sys.exit()

ballrect = ballrect.move(speed)

if ballrect.left \u003c 0 or ballrect.right \u003e width:

speed[0] = -speed[0]

if ballrect.top \u003c 0 or ballrect.bottom \u003e height:

speed[1] = -speed[1]

screen.fill(黑色)

screen.blit(ball, ballrect)

pygame.display.flip()

```

这段代码假设在它运行的同一个目录中有一个名为 "ball.png" 的图像文件,它将在窗口中快速移动。

其他

Pyweek,游戏制作竞赛,时间限制在7天内。

Ludum Dare 48h Game Programming Competition,LD48游戏制作竞赛,时间限制在48小时内。

2D引擎和库:

Phil's Pygame Utilities(PGU)是增强Pygame的库和工具的集合。工具tile编辑器和一个关卡编辑器。(tile, isometric, hexagonal)GUI增强包括全功能GUI,HTML渲染,文档输出,文本渲染。The libraries include a sprite and tile engine(tile,isometric,hexagonal),a state engine,计时器,高分系统。(当前不维护pgu)综合。

Pyglet,一个OpenGL库,类似Pygame。

参考资料