Pygame

From Wikipedia, the free encyclopedia

Template:Short description Template:DMCA

Page Module:Infobox/styles.css has no content.

Pygame
[[Programmer|Original authorTemplate:Pluralize from text]]Lenard Lindstrom, René Dudfield, Pete Shinners, Nicholas Dudfield, Thomas Kluyver, and others[1]
[[Programmer|DeveloperTemplate:Pluralize from text]]Pygame Community
Initial release28 October 2000; 25 years ago (2000-10-28)[2][3]
Template:Infobox software/simple
Written inC, Python, Cython, and Assembly[4][5]
EnginePage Template:Plainlist/styles.css has no content.Template:EditAtWikidata
Operating systemCross-platform
TypeAPI
LicenseGNU Lesser General Public License
WebsiteScript error: No such module "WikidataIB".
RepositoryPage Template:Plainlist/styles.css has no content.

Script error: No such module "Check for conflicting parameters".

Pygame is a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language.[7]

History

Pygame was originally written by Pete Shinners to replace PySDL after its development stalled.[2][8] It has been a community project since 2000[9] and is released under the free software GNU Lesser General Public License[4] (which "provides for Pygame to be distributed with open source and commercial software"[10]).

Development of version 2

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]

Features

Pygame uses the Simple DirectMedia Layer (SDL) library,[a] with the intention of allowing real-time computer game development without the low-level mechanics of the C programming language and its derivatives. This is based on the assumption that the most expensive functions inside games can be abstracted from the game logic, making it possible to use a high-level programming language, such as Python, to structure the game.[4]

Other features that SDL does have include vector math, collision detection, 2D sprite scene 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]

Community

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]

Sample code

The following code makes an image of a raccoon("raccoon.png") bounce when hitting an edge.

import pygame, sys

pygame.init()
screen = pygame.display.set_mode((1280, 720))
clock = pygame.time.Clock()
clock.tick(30)
black = 0, 0, 0
raccoon = pygame.image.load("raccoon.png")
raccoon = pygame.transform.scale(raccoon, (200, 140))
raccoonrect = raccoon.get_rect()
velocity = [1, 1]

while True:
    raccoonrect = raccoonrect.move(velocity)
    if raccoonrect.left < 0 or raccoonrect.right > 1280:
        velocity[0] = -velocity[0]
        raccoon = pygame.transform.flip(raccoon, True, False)
    if raccoonrect.top < 0 or raccoonrect.bottom > 720:
        velocity[1] = -velocity[1]
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    # screen update
    screen.fill(black)
    screen.blit(raccoon, raccoonrect)
    pygame.display.flip()

Notable games using Pygame

See also

Lua error in mw.title.lua at line 404: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

Notes

Page Template:Reflist/styles.css has no content.

  1. ^ Pygame 2 and later versions are based on SDL2, while earlier releases were based on SDL1.[27]

References

Page Template:Reflist/styles.css has no content.

  1. ^ Page Module:Citation/CS1/styles.css has no content."Contributors to Pygame". GitHub.
  2. ^ a b Page Module:Citation/CS1/styles.css has no content.Shinners, Pete. "Python Pygame Introduction - History". Pygame.org. Archived from the original on 17 September 2019. Retrieved 28 April 2017.
  3. ^ Page Module:Citation/CS1/styles.css has no content."Downloads - Pygame - Python game development". Pypi.python.org.
  4. ^ a b c Page Module:Citation/CS1/styles.css has no content."About Pygame". GitHub. Archived from the original on 18 September 2019. Retrieved 31 August 2019.
  5. ^ Page Module:Citation/CS1/styles.css has no content."GettingStarted". Pygame.org.
  6. ^ Page Module:Citation/CS1/styles.css has no content."PyGame 2.6.1 - Python 3.13 bugfix release". Retrieved 16 March 2025.
  7. ^ Page Module:Citation/CS1/styles.css has no content.Alam, Imran (2 July 2023). "How to Implement a Dialogue System in Pygame". MUO. Retrieved 29 November 2024.
  8. ^ Page Module:Citation/CS1/styles.css has no content."pySDL sourceforge page". Sourceforge.net.
  9. ^ Page Module:Citation/CS1/styles.css has no content."commit by other authors". GitHub.
  10. ^ Page Module:Citation/CS1/styles.css has no content."Pygame Front Page — pygame v2.0.1.dev1 documentation". www.pygame.org. Retrieved 26 February 2021.
  11. ^ Page Module:Citation/CS1/styles.css has no content."pygame 1.9.5 released into the wilds". www.pygame.org.
  12. ^ Page Module:Citation/CS1/styles.css has no content."pygame 2.0 - the happy dance birthday release". GitHub.
  13. ^ Page Module:Citation/CS1/styles.css has no content."Pygame docs". Pygame.org.
  14. ^ Page Module:Citation/CS1/styles.css has no content."Example of using RAPT to package pygame(_sdl2) games.: renpytom/rapt-pygame-example". GitHub. 1 April 2019. Retrieved 1 April 2019.
  15. ^ Page Module:Citation/CS1/styles.css has no content."API — Pygame Subset for Android". Archived from the original on 19 October 2014. Retrieved 14 October 2014.
  16. ^ Page Module:Citation/CS1/styles.css has no content."pygame - Community Edition". pypi.com.
  17. ^ Page Module:Citation/CS1/styles.css has no content."PyWeek - Python Game Programming Challenge". Pyweek.org.
  18. ^ Page Module:Citation/CS1/styles.css has no content.Gee, Sue (29 March 2013). "Why PyWeek: An Interview with Richard Jones". i-programmer.info. Retrieved 31 March 2020.
  19. ^ Page Module:Citation/CS1/styles.css has no content."PyWeek - Python Wiki". Wiki.python.org. Retrieved 1 April 2019.
  20. ^ Page Module:Citation/CS1/styles.css has no content."pygame documentation: Tutorials". Pygame.org.
  21. ^ Page Module:Citation/CS1/styles.css has no content.Siddiqi (27 June 2020). "Python Game projects with source code". CodersLegacy. Retrieved 25 December 2020.
  22. ^ Page Module:Citation/CS1/styles.css has no content.Shinners, Pete. "Line by line tutorial - Tutorial for beginners". Archived from the original on 5 February 2005.
  23. ^ Page Module:Citation/CS1/styles.css has no content."Creating Games with Python - A tutorial explaining how to use pygame for game development and improved execution". Linuxjournal.com.
  24. ^ Page Module:Citation/CS1/styles.css has no content."Arinoid tutorials video tutorials at ShowMeDo". Archived from the original on 29 April 2007.
  25. ^ Page Module:Citation/CS1/styles.css has no content."fretsonfire/src at master · skyostil/fretsonfire". GitHub. Retrieved 2 June 2023.
  26. ^ Page Module:Citation/CS1/styles.css has no content."Dangerous High School Girls in Trouble!". Pygame.org. Retrieved 8 July 2011.
  27. ^ Page Module:Citation/CS1/styles.css has no content."pygame 1.9.5 released into the wilds". Pygame.org.


Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.