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。