Pygame

跨平台Pyth

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 < 0 or ballrect.right > width:

speed[0] = -speed[0]

if ballrect.top < 0 or ballrect.bottom > 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。