![]() | |
Original author(s) | Lenard Lindstrom, René Dudfield, Pete Shinners, Nicholas Dudfield, Thomas Kluyver, and others[1] |
---|---|
Developer(s) | Pygame Community |
Initial release | 28 October 2000; 24 years ago (2000-10-28)[2][3] |
Stable release | |
Repository | |
Written in | Python,C,Cython, andAssembly[5][6] |
Operating system | Cross-platform |
Type | API |
License | GNU Lesser General Public License |
Website | www![]() |
Pygame is across-platform set ofPython modules designed for writingvideo games. It includescomputer graphics and soundlibraries designed to be used with the Pythonprogramming language.[7]
Pygame was originally written byPete Shinners to replacePySDL after its development stalled.[2][8] It has been acommunity project since 2000[9] and is released under thefree softwareGNU Lesser General Public License[5] (which "provides for Pygame to be distributed withopen source and commercial software"[10]).
Pygame version 2 was planned as "Pygame Reloaded" in 2009, but development and maintenance of Pygame completely stopped until the end of 2016 with version 1.9.1. After the release of version 1.9.5 in March 2019, development of a new version 2 was active on the roadmap.[11]
Pygame 2.0 released on 28 October 2020, Pygame's 20th anniversary.[12]
Pygame uses theSimple DirectMedia Layer (SDL) library,[a] with the intention of allowingreal-timecomputer game development without thelow-level mechanics of theC programming language and its derivatives. This is based on the assumption that the mostexpensive functions inside games can be abstracted from the game logic, making it possible to use ahigh-level programming language, such as Python, to structure the game.[5]
Other features that SDL does have include vector math,collision detection, 2D spritescene graph management,MIDI support, camera, pixel-array manipulation, transformations, filtering, advanced freetype font support, and drawing.[13]
Applications using Pygame can run on Android phones and tablets with the use of Pygame Subset for Android (pgs4a).[14] Sound, vibration, keyboard, and accelerometer are supported on Android.[15]
Following disagreements between former core developers and the repository owner, a fork known as pygame-ce (Community Edition) was created.[16]
There is a regular competition, called PyWeek, to write games using Python (and usually but not necessarily, Pygame).[17][18][19] The community has created many tutorials for Pygame.[20][21][22][23][24]
The following code makes an image of a raccoon("raccoon.png") bounce when hitting an edge.
importpygame,syspygame.init()screen=pygame.display.set_mode((1280,720))clock=pygame.time.Clock()clock.tick(30)black=0,0,0raccoon=pygame.image.load("raccoon.png")raccoon=pygame.transform.scale(raccoon,(200,140))raccoonrect=raccoon.get_rect()velocity=[1,1]whileTrue:raccoonrect=raccoonrect.move(velocity)ifraccoonrect.left<0orraccoonrect.right>1280:velocity[0]=-velocity[0]raccoon=pygame.transform.flip(raccoon,True,False)ifraccoonrect.top<0orraccoonrect.bottom>720:velocity[1]=-velocity[1]foreventinpygame.event.get():ifevent.type==pygame.QUIT:sys.exit()#screen updatescreen.fill(black)screen.blit(raccoon,raccoonrect)pygame.display.flip()