Pygame скачать для windows 10 64 bit

Python Game Development

pygame

AppVeyorBuild PyPiVersion PyPiLicense
Python3 GithubCommits LGTMAlerts LGTMGradePython LGTMGradeC

pygame is a free and open-source cross-platform library
for the development of multimedia applications like video games using Python.
It uses the Simple DirectMedia Layer library and several other
popular libraries to abstract the most common functions, making writing
these programs a more intuitive task.

We need your help to make pygame the best it can be!
New contributors are welcome.

Installation

pip install pygame

Help

If you are just getting started with pygame, you should be able to
get started fairly quickly. Pygame comes with many tutorials and
introductions. There is also full reference documentation for the
entire library. Browse the documentation on the docs page.

The online documentation stays up to date with the development version
of pygame on github. This may be a bit newer than the version of pygame
you are using. To upgrade to the latest full release, run
pip install pygame —upgrade in your terminal.

Best of all, the examples directory has many playable small programs
which can get you started playing with the code right away.

Building From Source

If you want to use features that are currently in development,
or you want to contribute to pygame, you will need to build pygame
locally from its source code, rather than pip installing it.

Installing from source is fairly automated. The most work will
involve compiling and installing all the pygame dependencies. Once
that is done, run the setup.py script which will attempt to
auto-configure, build, and install pygame.

Much more information about installing and compiling is available
on the Compilation wiki page.

Credits

Thanks to everyone who has helped contribute to this library.
Special thanks are also in order.

  • Marcus Von Appen: many changes, and fixes, 1.7.1+ freebsd maintainer

  • Lenard Lindstrom: the 1.8+ windows maintainer, many changes, and fixes

  • Brian Fisher for svn auto builder, bug tracker and many contributions

  • Rene Dudfield: many changes, and fixes, 1.7+ release manager/maintainer

  • Phil Hassey for his work on the pygame.org website

  • DR0ID for his work on the sprite module

  • Richard Goedeken for his smoothscale function

  • Ulf Ekström for his pixel perfect collision detection code

  • Pete Shinners: original author

  • David Clark for filling the right-hand-man position

  • Ed Boraas and Francis Irving: Debian packages

  • Maxim Sobolev: FreeBSD packaging

  • Bob Ippolito: MacOS and OS X porting (much work!)

  • Jan Ekhol, Ray Kelm, and Peter Nicolai: putting up with early design ideas

  • Nat Pryce for starting our unit tests

  • Dan Richter for documentation work

  • TheCorruptor for his incredible logos and graphics

  • Nicholas Dudfield: many test improvements

  • Alex Folkner for pygame-ctypes

Thanks to those sending in patches and fixes: Niki Spahiev, Gordon
Tyler, Nathaniel Pryce, Dave Wallace, John Popplewell, Michael Urman,
Andrew Straw, Michael Hudson, Ole Martin Bjoerndalen, Herve Cauwelier,
James Mazer, Lalo Martins, Timothy Stranex, Chad Lester, Matthias
Spiller, Bo Jangeborg, Dmitry Borisov, Campbell Barton, Diego Essaya,
Eyal Lotem, Regis Desgroppes, Emmanuel Hainry, Randy Kaelber
Matthew L Daniel, Nirav Patel, Forrest Voight, Charlie Nolan,
Frankie Robertson, John Krukoff, Lorenz Quack, Nick Irvine,
Michael George, Saul Spatz, Thomas Ibbotson, Tom Rothamel, Evan Kroske,
Cambell Barton.

And our bug hunters above and beyond: Angus, Guillaume Proux, Frank
Raiser, Austin Henry, Kaweh Kazemi, Arturo Aldama, Mike Mulcheck,
Michael Benfield, David Lau

There’s many more folks out there who’ve submitted helpful ideas, kept
this project going, and basically made our life easier. Thanks!

Many thank you’s for people making documentation comments, and adding to the
pygame.org wiki.

Also many thanks for people creating games and putting them on the
pygame.org website for others to learn from and enjoy.

Lots of thanks to James Paige for hosting the pygame bugzilla.

Also a big thanks to Roger Dingledine and the crew at SEUL.ORG for our
excellent hosting.

Dependencies

Pygame is obviously strongly dependent on SDL and Python. It also
links to and embeds several other smaller libraries. The font
module relies on SDL_ttf, which is dependent on freetype. The mixer
(and mixer.music) modules depend on SDL_mixer. The image module
depends on SDL_image, which also can use libjpeg and libpng. The
transform module has an embedded version of SDL_rotozoom for its
own rotozoom function. The surfarray module requires the Python
NumPy package for its multidimensional numeric arrays.
Dependency versions:

  • CPython >= 3.6 or PyPy3

  • SDL >= 2.0.0

  • SDL_mixer >= 2.0.0

  • SDL_image >= 2.0.0

  • SDL_ttf >= 2.0.11

  • SDL_gfx (optional, vendored in)

  • NumPy >= 1.6.2 (optional)

License

This library is distributed under GNU LGPL version 2.1, which can
be found in the file docs/LGPL.txt. We reserve the right to place
future versions of this library under a different license.

This basically means you can use pygame in any project you want,
but if you make any changes or additions to pygame itself, those
must be released with a compatible license (preferably submitted
back to the pygame project). Closed source and commercial games are fine.

The programs in the examples subdirectory are in the public domain.

See docs/licenses for licenses of dependencies.

2.1.3.dev8 🦴

2.1.3.dev6 — 💀

💀

🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴
👻python3 -m pip install pygame==2.1.3.dev6
💀🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀🦴

What’s Changed

It’s a lot.

This is a pre-release for testing and giggles only.
Got issues? Don’t just tell your therapist. Let us know too?
Thanks to all.

  • 2.1.3.dev4 and 2.1.3dev5 by @illume in #3060
  • Fix more typestub warnings with dunders by @ankith26 in #3075
  • Fix APPMOUSEFOCUS naming, update const values by @ankith26 in #3043
  • Pkgdata import in init for PyInstaller by @Starbuck5 in #3082
  • Fix logos page by @Grimmys in #2977
  • Fix segfault in resource loading function by @ankith26 in #3089
  • Fix pygame logo image in README.rst by @novialriptide in #3090
  • Add black badge by @novialriptide in #3091
  • Use static dot declarations for type objects by @ankith26 in #3067
  • Windows prebuilts updates with freetype and SDL_ttf 2.0.18 by @Starbuck5 in #3086
  • Get rid of sprintf calls in the codebase by @ankith26 in #3041
  • fix/norm function pointer calls for METH_NOARGS by @pmp-p in #3080
  • Update list of datafiles in generated docs by @wxh06 in #3073
  • Improve draw doc accuracy and example style by @Starbuck5 in #3074
  • Check SDL version earlier, report known incompat (closes #2657) by @SnoopJeDi in #2661
  • Lint/format examples/*.py by @Starbuck5 in #3093
  • missing pointer cast fix by @pmp-p in #3104
  • Add a .clamp_magnitude() to Vector2 and Vector3 by @novialriptide in #2990
  • examples/mask.py change default image to one with alpha channel by @brccabral in #3111
  • mouse_get_pos takes no argument by @pmp-p in #3115
  • Small fixes to the documentation header by @hnrkcode in #3094
  • Rect and Color support collections.abc.Container, add tests and stubs by @ankith26 in #3066
  • Don’t raise python errors in v4l2_read_frame by @ankith26 in #3052
  • fix name/definition conflict for pgSurface_New by @pmp-p in #3106
  • Add pygame.font.get_sdl_ttf_version() for getting version of SDL_ttf library by @mariospapaz in #3095
  • Math’s Vectors have not documented methods by @gresm in #3122
  • Event tests and types improvements (Minor event refactor part 3) by @ankith26 in #3063
  • Cleanup old compatibility code in windows sysfont by @Starbuck5 in #3126
  • Fix display.set_mode docs for DOUBLEBUF by @Starbuck5 in #3129
  • Make pgBuffer_Release retain previously set errors by @ankith26 in #3127
  • Change renderer names to strings in get_drivers by @zoldalma999 in #3132
  • Takeover of PR #2718 by @davidpendergast by @MyreMylar in #3118
  • Fixed Vector.clamp_magnitude() parameters by @novialriptide in #3133
  • SIMD version of BLEND_RGBA_MULT for 32bit surfaces by @MyreMylar in #2988
  • update constants.c to clang-format version 14.0 by @MyreMylar in #3137
  • Add pygame.context module by @Starbuck5 in #3100
  • Add pygame.get_pref_locales by @ankith26 in #3038
  • Use more optimal line functions in polygon by @Starbuck5 in #3141
  • Proposal: add Rect.collidelistallobjects that returns the colliding objects by @dr0id in #3026
  • Remove Solaris compatibility code to re-enable SIGALARM by @MyreMylar in #3142
  • Fix Vector subclass methods to return the correct subtype instance by @novialriptide in #3088
  • Raise only pygame.error when mixer loading fails by @ankith26 in #3148
  • Fix typo in SpriteIntro.rst tutorial by @JoshuaDRose in #3154
  • Fixed windows version parsing in Camera that errored on versions like 8.1 by @Matiiss in #3158
  • Fix «-auto» setup.py argument not being used properly in buildconfig by @robertpfeiffer in #3157
  • Updates to moveit.py example by @dbrown3562 in #3146
  • Update to SDL 2.0.22 on Windows by @Starbuck5 in #3162
  • ball -> bat (typo fix) by @elgcodes in #3164
  • typo fix or -> for by @elgcodes in #3165
  • Fix sysfont.get_fonts stop returning None, warn fc-list issues by @ankith26 in #3159
  • Fix _sdl2.controller for static build, pygame.h is in _sdl2 parent directory by @pmp-p in #3105
  • Add SIMD versions of RGB_MUL blitter by @MyreMylar in #3136
  • fix typo in korean document by @EunhoKang in #3176
  • Add evfilter guard mutex, fix pymalloc without GIL (Minor event refactor part 2.1) by @ankith26 in #3177
  • Add test for fullscreen toggle by @PurityLake in #3171
  • SIMD versions of RGB_ADD, RGBA_ADD, RGB_MUL & RGBA_MUL by @MyreMylar in #3170
  • static build support for WebAssembly by @pmp-p in #3108
  • correction of a comment by @Yvant2000 in #3182
  • Regenerate cython files by @Starbuck5 in #3183
  • Simplify some boolean handling by @Starbuck5 in #3192
  • Fix DLL loading problems on Windows Store Python installations by @Starbuck5 in #3196
  • wasm: fence simd/avx by @pmp-p in #3191
  • Removed Python 2 nonzero by @blankRiot96 in #3194
  • Use CircleCI for manylinux aarch64 builds by @ankith26 in #3188
  • Remove custom JPEG saver by @Starbuck5 in #3180
  • Update build-emsdk.yml by @pmp-p in #3185
  • Improve clang format source file detection by @zoldalma999 in #3140
  • Clang format touch.c to fix failing lint tests by @ankith26 in #3201
  • Fix Chimp tutorial code to use the correct module name alias by @kharissa in #3205
  • Fix a few pylint issues by @ankith26 in #3206
  • pyupgrade —py36-plus **/*.py by @cclauss in #3208
  • Fix print () —> print() by @cclauss in #3213
  • Make latest pypy wheels on mac/linux, cibuildwheel on manylinux and other minor updates by @ankith26 in #3187
  • Remove more code for legacy Python by @cclauss in #3207
  • More Python f-strings with flynt by @cclauss in #3212
  • Add SIMD versions of RGB & RGBA BLEND_MAX, BLEND_MIN blit modes by @MyreMylar in #3181
  • Use custom SDL2_ttf on Windows by @Starbuck5 in #3193
  • Typos: get em out of here! by @Starbuck5 in #3216
  • setup.cfg: Sort pylint disables to simplify future edits by @cclauss in #3220
  • sysfont.py: check for emscripten platform by @pmp-p in #3225
  • Fix undefined name: get_python_inc() by @cclauss in #3219
  • Added strikethrough option to Font by @MightyJosip in #2991
  • Fixed window not staying centered on second call of display.set_mode by @PurityLake in #3172
  • Fix Vector memory leak by @MightyJosip in #3236
  • wasm disable mutex usage, wasm CI updates by @ankith26 in #3203
  • wasm: pygame.surfarray could load on 3.10.5 backport by @pmp-p in #3246
  • Refactor font.render by @Starbuck5 in #3186
  • Fix Controller.rumble returning wrong bool on error by @ankith26 in #3248
  • wasm: wrong logic masks pgExc_SDLError by @pmp-p in #3247
  • Make textinput show a candidate list by @Starbuck5 in #3244
  • Cleaned up test/README.TXT by @novialriptide in #3254
  • Fix typos in sprite docs by @StarDexterity in http…

2.1.3.dev4 — the peace and solidarity pre-release

2.1.3.dev2 — education means to inspire people

🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐
🌼🌸 python3 -m pip install pygame==2.1.3.dev2
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐

This is a development release, to give more people the opportunity to test out the work we’ve already done. We still have a big pile of PRs with a lot more changes coming for the 2.1.3 release milestone.

Before we get to what’s new, here’s something to ponder…

«Real education means to inspire people to live more abundantly, to learn to begin with life as they find it and make it better,»
— Carter G. Woodson

What’s Changed

  • Add pixel format name into display info by @MyreMylar in #2964
  • Fix path dependencies by @SergioArnaud in #2975
  • Add test for pygame.locals by @ankith26 in #2958
  • Fix Pygame imported class typehints by @MightyJosip in #2965
  • fix some bugs in camera.py by @ankith26 in #2961
  • clean modinit code, fix bugs, use recommended API by @ankith26 in #2952
  • Python2 to Python3 code modernization by @novialriptide in #2984
  • SDL 2.0.20 by @illume in #2983
  • Update the image doc, delineate bytes and str by @Starbuck5 in #2959
  • adding missing copy test for Vector3 by @JovialKnoll in #3000
  • New black formatting by @novialriptide in #3013
  • Misc fixes: Fix UCS_4 UCS4 typo, incorrect color methods export and display.c error handling bugs by @ankith26 in #2987
  • Snake casify _sdl2.video.Image.flipX and .flipY by @avaxar in #2978
  • Removed unused imports by @novialriptide in #3016
  • Fix warnings, make warnings error on CI by @ankith26 in #2919
  • Added Rect typing by @novialriptide in #2969
  • Fix there typo in tests.rst by @eoghanriley in #3022
  • C code cleanups + cdrom/overlay removal by @Starbuck5 in #3014
  • Make sure surfaces start as opaque black. (MacOS) by @Starbuck5 in #2973
  • Add scale_by, smoothscale_by functions by @Starbuck5 in #2723
  • Fix really tiny grammar mistake by @gresm in #3027
  • Font rwops by @Starbuck5 in #2911
  • Add optional parameter ‘consider_alpha’ to the transform.average_colo… by @dr0id in #2968
  • pygame.docs: remove warning in docs generation due to a reference to… by @dr0id in #3029
  • Add __new__ and __init__ functions for some types by @zoldalma999 in #3001
  • Regenerate cython files by @ankith26 in #3032

New Contributors

  • @SergioArnaud made their first contribution in #2975
  • @JovialKnoll made their first contribution in #3000
  • @eoghanriley made their first contribution in #3022
  • @gresm made their first contribution in #3027

Full Changelog: 2.1.2…2.1.3.dev2

2.1.2

What’s Changed

There are a couple of quick fixes for issues in the last release in this one.

  • Fix segfault in display.update by @ankith26 in #2954
  • Quick fix to get ‘python -m pygame.docs’ working by @ankith26 in #2955

Full Changelog: 2.1.1…2.1.2

2.1.1 — solstice meow

Don’t worry, relax… have a pygame.

🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
🌼🌸 python3 -m pip install pygame==2.1.1
🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻

The north enters a winter solstice and the south a summer solstice.
The shortest day of the year for people up top,
and the longest day of the year for people down under.

For people in the middle, it's pretty much the same every day ;)

Whatever the length of your day, this pygame is for you.

Before we get to What’s new in pygame 2.1.1…

At the bottom of this post we have a special treat…
some games people have made this year.
Some of the themes: Aliens, moose, cars, giant robots, trees, and… menus


But first…

What’s Changed?

We have a new SDL 2.0.18 release which brings a lot of fixes and optimizations.

What changed in SDL 2.0.18?

In addition to lots of bug fixes, here are the major changes in this SDL release:

General:

  • The SDL wiki documentation and development headers are automatically kept in sync
  • Each function has information about in which version of SDL it was introduced
  • SDL-specific CMake options are now prefixed with ‘SDL_’. Be sure to update your CMake build scripts accordingly!
  • Added the hint SDL_HINT_APP_NAME to let SDL know the name of your application for various places it might show up in system information
  • Added SDL_RenderGeometry() and SDL_RenderGeometryRaw() to allow rendering of arbitrary shapes using the SDL 2D render API
  • Added SDL_SetTextureUserData() and SDL_GetTextureUserData() to associate application data with an SDL texture
  • Added SDL_RenderWindowToLogical() and SDL_RenderLogicalToWindow() to convert between window coordinates and logical render coordinates
  • Added SDL_RenderSetVSync() to change whether a renderer present is synchronized with vblank at runtime
  • Added SDL_PremultiplyAlpha() to premultiply alpha on a block of SDL_PIXELFORMAT_ARGB8888 pixels
  • Added a window event SDL_WINDOWEVENT_DISPLAY_CHANGED which is sent when a window changes what display it’s centered on
  • Added SDL_GetWindowICCProfile() to query a window’s ICC profile, and a window event SDL_WINDOWEVENT_ICCPROF_CHANGED that is sent when it changes
  • Added the hint SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY to allow EGL windows to be transparent instead of opaque
  • SDL_WaitEvent() has been redesigned to use less CPU in most cases
  • Added SDL_SetWindowMouseRect() and SDL_GetWindowMouseRect() to confine the mouse cursor to an area of a window
  • You can now read precise mouse wheel motion using ‘preciseX’ and ‘preciseY’ event fields
  • Added SDL_GameControllerHasRumble() and SDL_GameControllerHasRumbleTriggers() to query whether a game controller supports rumble
  • Added SDL_JoystickHasRumble() and SDL_JoystickHasRumbleTriggers() to query whether a joystick supports rumble
  • SDL’s hidapi implementation is now available as a public API in SDL_hidapi.h

Windows:

  • Improved relative mouse motion over Windows Remote Desktop
  • Added the hint SDL_HINT_IME_SHOW_UI to show native UI components instead of hiding them (defaults off)

Windows/UWP:

  • WGI is used instead of XInput for better controller support in UWP apps

Linux:

  • Added the hint SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME to set the activity that’s displayed by the system when the screensaver is disabled
  • Added the hint SDL_HINT_LINUX_JOYSTICK_CLASSIC to control whether /dev/input/js* or /dev/input/event* are used as joystick devices
  • Added the hint SDL_HINT_JOYSTICK_DEVICE to allow the user to specify devices that will be opened in addition to the normal joystick detection
  • Added SDL_LinuxSetThreadPriorityAndPolicy() for more control over a thread priority on Linux

Android:

  • Added support for audio output and capture using AAudio on Android 8.1 and newer
  • Steam Controller support is disabled by default, and can be enabled by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to «1» before calling SDL_Init()

Apple Arcade:

  • Added SDL_GameControllerGetAppleSFSymbolsNameForButton() and SDL_GameControllerGetAppleSFSymbolsNameForAxis() to support Apple Arcade titles

iOS:

  • Added documentation that the UIApplicationSupportsIndirectInputEvents key must be set to true in your application’s Info.plist in order to get real Bluetooth mouse events.
  • Steam Controller support is disabled by default, and can be enabled by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to «1» before calling SDL_Init()

We also have a new Vector2d.copy() method, a way to check if rect in rect. Some draw assembly optimizations are enabled on aarch64 (M1 and rasbperry pi), and rect drawing is much faster.

Work continues on code cleanup, and we reached a milestone where all PRs are checked for code formatting and linting. Work on enforcing stricter C level static analysis checks is in progress. Our examples were cleaned up to use simplified color names, and semantic variable names for colors (instead of naming the variables after colors). Work on other cleanups progresses too… but we can tell you about that in the next release notes!

Bugfixes

  • Working gamma test on windows by @MyreMylar in #2906
  • Freetype: Fix intermittent crash with test_font_file_not_found by @illume in #2944

New contributor bugfixes

  • @JoshuaShequin fixed the return value for music.get_pos() after pausing and unpausing. #2899
  • Addressing set error inconsistencies in certain src_c/{base.c, rect.c} functions by @anmallie in #2934
  • @mingzhang96 fixed SysFont on MacOS not being able to find Arial on their system. #2849

@ankith26

  • a strange issue where pygame failed on import on some systems in #2870
  • FileNotFoundErrors not being displayed properly from pathlib loading in #2840
  • transform.average_color failing on the ppc64le architecture with -O3 in #2876
  • hang on exit fix in #2816
  • GIL release in transform module in #2904

@MightyJosip

  • pygame.version.SDL and pygame.version.vernum fixed in #2938
  • Large ellipses are no longer drawn as diamonds in #2880
  • Fixed a pygame.draw.rect bug where unfilled drawn rects had weird corners in #2927. In the process of this pygame.draw.rect saw some large speedups.

@Starbuck5

  • The initial display surface could have artifacts and not be set up right on MacOS in #2859
  • freetype.Font could raise IOError instead of FileNotFoundError in #2922
  • Writing fixes, corrected audio device mistake in #2925

Enhancements

  • SDL 2.0.18 has now been added. Skip some focus related tests by @illume in #2939
  • @Starbuck5 added a shiny new, special icon just for MacOS (provided by @TomSchimansky), improving pygame’s look on MacOS in #2858
  • New contributor @michaelasp added a __contains__ operation to the Rect class, allowing you to check if Rect1 in Rect2 in #2897
  • New contributor @novialriptide added a copy() method to Vector2 and Vector3. #2894
  • New contributor @GustavoQuintero99 added a couple CSS colors we were missing into pygame’s named colors. #2865
  • @ankith26 enabled blitting optimizations by default on aarch64 (M1 and new raspberry) in #2818

Docs and Types

  • @AvaxarXapaxa fixed a bunch of «it’s» that should’ve been «its.» #2923
  • @Starbuck5 added the documentation into the installation itself. python -m pygame.docs will launch a local copy of the docs now. #2826
  • New contributor @Radiicall fixed a spelling mistake. #2864
  • New contributor @novialriptide fixed a grammar mistake in #2835 and fixed some typing for AbstractGroup in #2896 and #2930
  • @ankith26 cleaned type stubs and fixed some of them in #2882

Deprecations

  • New contributor @CAPTAIN1947 deprecated sprite.LayeredDirty.set_timing_treshold in favor of set_timing_threshold. #2921
  • New contributor @novialriptide deprecated Vector.rotate_ip_rad methods in favor of the more consistent Vector.rotate_rad_ip. #2…

2.1.1.dev4

Another pre-release for testing. Test your app is still working as expected with this?

python3 -m pip install pygame==2.1.1.dev4

Full release notes will come in the full release.

What’s Changed

  • Fix pygame.version.SDL and pygame.version.vernum by @MightyJosip in #2938
  • SDL 2.0.18, skip some focus related tests by @illume in #2939
  • 2.1.1.dev2 by @illume in #2942
  • Reform colors across the examples by @maxsteep in #2901
  • fix GIL release in transform module by @ankith26 in #2904
  • Working gamma test on windows by @MyreMylar in #2906
  • Addressing set error inconsistencies in certain src_c/{base.c, rect.c} functions by @anmallie in #2934
  • Writing fixes, corrected audio device mistake by @Starbuck5 in #2925
  • freetype: Fix intermittent crash with test_font_file_not_found by @illume in #2944

New Contributors

  • @maxsteep made their first contribution in #2901
  • @anmallie made their first contribution in #2934

Full Changelog: 2.1.0…2.1.1.dev4

2.1.1.dev2 — for your testing pleasure

This is a pre-release for testing.

Test your app is still working as expected with this?

python3 -m pip install pygame==2.1.1.dev2

Full release notes will come in the full release.

What’s Changed

  • 2.1.0 and 2.1.0.dev2 by @illume in #2825
  • Minor Grammar Mistake by @novialriptide in #2835
  • Release GIL on SDL_Quit, fix deadlock by @ankith26 in #2816
  • neon optimisations default on arm64 by @ankith26 in #2818
  • Create a setup.py lint function by @Pierre-Sassoulas in #2285
  • remove old SDL1 and PY2 tests by @bydariogamer in #2833
  • The formatting all the C and Python code PR by @illume in #2842
  • Deprecate fastevent, compat shim based on event by @ankith26 in #2843
  • add sysfont path for macos by @mingzhang96 in #2849
  • remove pygame.compat and black tests and src_py by @bydariogamer in #2845
  • correct a spelling mistake by @Radiicall in #2864
  • Miscellaneous fixes by @Starbuck5 in #2841
  • Prepare math.enable/disable_swizzling for removal by @zoldalma999 in #2856
  • colordict.py is missing a few CSS standard colors #2850 by @GustavoQuintero99 in #2865
  • Fix some typehints, clean stubs by @ankith26 in #2882
  • Continue on Sdl compose custom blend mode by @illume in #2790
  • Add docs to the CI-generated wheels by @Starbuck5 in #2826
  • Fix weird MacOS display surf weirdness by @Starbuck5 in #2859
  • Added .copy() to Vector2 and Vector3 by @novialriptide in #2894
  • workaround for average_color due to bug in ppc gcc , update test+types by @ankith26 in #2876
  • Fix drawing of big ellipses by @MightyJosip in #2880
  • py2 code cleanups + doc updates by @ankith26 in #2844
  • Add __contains__ method to the Rect class by @michaelasp in #2897
  • Renamed some Vector methods to keep consistency by @novialriptide in #2863
  • Changed AbstractGroup.draw() to return List[Rect] by @novialriptide in #2896
  • Improve MacOS icon by @Starbuck5 in #2858
  • fix filenotfound errors on pathlib loading by @ankith26 in #2840
  • Fix misnamed class aliasing in init file by @ankith26 in #2870
  • add missing typehints to Vector2 and Vector3 by @bydariogamer in #2908
  • Fix for paused music and get_pos() by @JoshuaShequin in #2899
  • Fix docs building without config by @Grimmys in #2907
  • C cleanups to remove more old compat code by @ankith26 in #2854
  • Pylinting, format and lint check with setup.py lint by @illume in #2857
  • Cython code modernizations by @Starbuck5 in #2920
  • Fix some «it’s» -> «its» in the docs by @AvaxarXapaxa in #2923
  • Renamed pygame.sprite.LayeredDirty.set_timing_treshold to pygame.sprite.LayeredDirty.set_timing_threshold by @CAPTAIN1947 in #2921
  • Recorrected typehint for AbstractGroup by @novialriptide in #2930
  • Fix rect drawing with width by @MightyJosip in #2927
  • Freetype FileNotFound by @Starbuck5 in #2922

New Contributors

  • @novialriptide made their first contribution in #2835
  • @mingzhang96 made their first contribution in #2849
  • @Radiicall made their first contribution in #2864
  • @GustavoQuintero99 made their first contribution in #2865
  • @michaelasp made their first contribution in #2897
  • @JoshuaShequin made their first contribution in #2899
  • @CAPTAIN1947 made their first contribution in #2921

Full Changelog: 2.1.0…2.1.1.dev2

2.1.0 — the 7688 less lines of code release

This is a pretty minimal release in terms of user facing features.
If you’re happy with 2.0.3, you probably can stick with that one.

You can probably ignore this release

  • 7688 lines of source code were removed (more to come)
  • There’s no binary wheels for python2.7, or python3.5
  • pygame no longer compiles from source with SDL1
  • pygame 2.0.3 is there for python 2 users

What’s changed

There were lots of internal changes removing old code related to backwards compatibility with SDL1, and python2.

  • Officially drop python2 (and 3.5) and SDL1 support by @Starbuck5 in #2817
  • Remove most PY2/PY3 C compatibility code by @Starbuck5 in #2819
  • Simple fix to swap numpy.float type out in favour of float by @MyreMylar in #2815
  • Remove most SDL1/SDL2 compatibility c code by @Starbuck5 in #2823
  • Ubuntu 18/20 SDL2 sdist CI, mac CI pp36 drop by @ankith26 in #2821
  • SDL1 buildconfig removal by @robertpfeiffer and @illume in #2824

Full Changelog: 2.0.3…2.1.0

2.1.0.dev2 — kick the wheels pre-release

This is a quick pre-release, which mainly contains python 2 and SDL 1 removal.

Please kick the wheels? Changes are very minimal over 2.0.3, except for python2 and SDL1 removal.

Each software is released under license type that can be found on program pages as well as on search or category pages. Here are the most common license types:

Freeware

Freeware programs can be downloaded used free of charge and without any time limitations. Freeware products can be used free of charge for both personal and professional (commercial use).

Open Source

Open Source software is software with source code that anyone can inspect, modify or enhance. Programs released under this license can be used at no cost for both personal and commercial purposes. There are many different open source licenses but they all must comply with the Open Source Definition — in brief: the software can be freely used, modified and shared.

Free to Play

This license is commonly used for video games and it allows users to download and play the game for free. Basically, a product is offered Free to Play (Freemium) and the user can decide if he wants to pay the money (Premium) for additional features, services, virtual or physical goods that expand the functionality of the game. In some cases, ads may be show to the users.

Demo

Demo programs have a limited functionality for free, but charge for an advanced set of features or for the removal of advertisements from the program’s interfaces. In some cases, all the functionality is disabled until the license is purchased. Demos are usually not time-limited (like Trial software) but the functionality is limited.

Trial

Trial software allows the user to evaluate the software for a limited amount of time. After that trial period (usually 15 to 90 days) the user can decide whether to buy the software or not. Even though, most trial software products are only time-limited some also have feature limitations.

Paid

Usually commercial software or games are produced for sale or to serve a commercial purpose.

Pygame 2.0.2 — O2 release

Hello everyone! 2.0.2 is finally here!

🔷🔬 💧📘💙🌌❄️💎 🔷🔬 💧📘💙🌌❄️💎
🟦 pip install pygame --upgrade
🌌❄️💎🔷 🔬 💧📘💙🌌❄️💎 🔷🔬 💧📘💙

How do you summarize over 10 months of development, with over 40 contributors contributing 1000s of lines of fixes and enhancements? If you’re interested in seeing the changes in more detail, you can check out the release notes for the 2.0.2.dev2 and 2.0.2.dev4 pre-releases. Below is a summary of some highlights.

2.0.2 release greatest hits

  • Rumble support for Joysticks and Controllers
  • Python 3.10 support
  • MacOS 10.9- MacOS 10.13 support for the first time in the 2.x series (intel chips)
  • SDL 2.0.14 -> SDL 2.0.16
  • MP3 music support for Mac and Linux (Windows already had it)
  • Lots of work refining the type hints.
  • Documentation improvements galore, and the documentation build system was updated.
  • Native webcam support for Windows

And many more bugfixes and enhancements to improve the pygame experience.


  • merged PRs since we started the pygame 2.0.2 series on the 24th of December 2020.
  • 433 Commits since 2.0.1 release
  • previous pygame release notes

Обновлено

2019-04-17 07:50:10

Совместимость

Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10

Описание

Pygame — бесплатный набор библиотек языка программирования Python с открытым исходным кодом. Основан на мультимедийной библиотеке SDL.

Описание

Эта библиотека поможет тем, кто обладает хотя бы начальными навыками программирования на Python, создавать качественные мультимедийные приложения, а также игры. С её помощью хотя и не удастся создать конкурента гигантам вроде World of Warcraft или PUBG, но спрос на небольшие двухмерные аркады имеется и по сей день. Приятной особенностью Pygame является кроссплатформенность. Это означает, что её можно использовать на практически любой платформе и операционной системе.

Стоит добавить, что на официальном сайте Pygame имеется достаточно обширная и понятная документация, которая поможет в случае возникновения затруднений. Кроме того, там же можно найти примеры работ разработчиков со всего мира, любезно предоставивших исходный код своих творений. Это поможет научиться писать собственный код и разобраться в том, как можно реализовать те или иные функции.

Скачайте Pygame с freeSOFT: это быстро, бесплатно и совершенно безопасно.

Версии

pygame

AppVeyorBuild PyPiVersion PyPiLicense Python3 GithubCommits LGTMAlerts LGTMGradePython LGTMGradeC

pygame is a free and open-source cross-platform library for the development of multimedia applications like video games using Python. It uses the Simple DirectMedia Layer library and several other popular libraries to abstract the most common functions, making writing these programs a more intuitive task.

We need your help to make pygame the best it can be! New contributors are welcome.

Installation

pip install pygame

Help

If you are just getting started with pygame, you should be able to get started fairly quickly. Pygame comes with many tutorials and introductions. There is also full reference documentation for the entire library. Browse the documentation on the docs page.

The online documentation stays up to date with the development version of pygame on github. This may be a bit newer than the version of pygame you are using. To upgrade to the latest full release, run pip install pygame --upgrade in your terminal.

Best of all, the examples directory has many playable small programs which can get you started playing with the code right away.

Building From Source

If you want to use features that are currently in development, or you want to contribute to pygame, you will need to build pygame locally from its source code, rather than pip installing it.

Installing from source is fairly automated. The most work will involve compiling and installing all the pygame dependencies. Once that is done, run the setup.py script which will attempt to auto-configure, build, and install pygame.

Much more information about installing and compiling is available on the Compilation wiki page.

Credits

Thanks to everyone who has helped contribute to this library. Special thanks are also in order.

  • Marcus Von Appen: many changes, and fixes, 1.7.1+ freebsd maintainer
  • Lenard Lindstrom: the 1.8+ windows maintainer, many changes, and fixes
  • Brian Fisher for svn auto builder, bug tracker and many contributions
  • Rene Dudfield: many changes, and fixes, 1.7+ release manager/maintainer
  • Phil Hassey for his work on the pygame.org website
  • DR0ID for his work on the sprite module
  • Richard Goedeken for his smoothscale function
  • Ulf Ekström for his pixel perfect collision detection code
  • Pete Shinners: original author
  • David Clark for filling the right-hand-man position
  • Ed Boraas and Francis Irving: Debian packages
  • Maxim Sobolev: FreeBSD packaging
  • Bob Ippolito: MacOS and OS X porting (much work!)
  • Jan Ekhol, Ray Kelm, and Peter Nicolai: putting up with early design ideas
  • Nat Pryce for starting our unit tests
  • Dan Richter for documentation work
  • TheCorruptor for his incredible logos and graphics
  • Nicholas Dudfield: many test improvements
  • Alex Folkner for pygame-ctypes

Thanks to those sending in patches and fixes: Niki Spahiev, Gordon Tyler, Nathaniel Pryce, Dave Wallace, John Popplewell, Michael Urman, Andrew Straw, Michael Hudson, Ole Martin Bjoerndalen, Herve Cauwelier, James Mazer, Lalo Martins, Timothy Stranex, Chad Lester, Matthias Spiller, Bo Jangeborg, Dmitry Borisov, Campbell Barton, Diego Essaya, Eyal Lotem, Regis Desgroppes, Emmanuel Hainry, Randy Kaelber Matthew L Daniel, Nirav Patel, Forrest Voight, Charlie Nolan, Frankie Robertson, John Krukoff, Lorenz Quack, Nick Irvine, Michael George, Saul Spatz, Thomas Ibbotson, Tom Rothamel, Evan Kroske, Cambell Barton.

And our bug hunters above and beyond: Angus, Guillaume Proux, Frank Raiser, Austin Henry, Kaweh Kazemi, Arturo Aldama, Mike Mulcheck, Michael Benfield, David Lau

There’s many more folks out there who’ve submitted helpful ideas, kept this project going, and basically made our life easier. Thanks!

Many thank you’s for people making documentation comments, and adding to the pygame.org wiki.

Also many thanks for people creating games and putting them on the pygame.org website for others to learn from and enjoy.

Lots of thanks to James Paige for hosting the pygame bugzilla.

Also a big thanks to Roger Dingledine and the crew at SEUL.ORG for our excellent hosting.

Dependencies

Pygame is obviously strongly dependent on SDL and Python. It also links to and embeds several other smaller libraries. The font module relies on SDL_ttf, which is dependent on freetype. The mixer (and mixer.music) modules depend on SDL_mixer. The image module depends on SDL_image, which also can use libjpeg and libpng. The transform module has an embedded version of SDL_rotozoom for its own rotozoom function. The surfarray module requires the Python NumPy package for its multidimensional numeric arrays. Dependency versions:

  • CPython >= 3.6 or PyPy3
  • SDL >= 2.0.0
  • SDL_mixer >= 2.0.0
  • SDL_image >= 2.0.0
  • SDL_ttf >= 2.0.11
  • SDL_gfx (optional, vendored in)
  • NumPy >= 1.6.2 (optional)

License

This library is distributed under GNU LGPL version 2.1, which can be found in the file docs/LGPL.txt. We reserve the right to place future versions of this library under a different license.

This basically means you can use pygame in any project you want, but if you make any changes or additions to pygame itself, those must be released with a compatible license (preferably submitted back to the pygame project). Closed source and commercial games are fine.

The programs in the examples subdirectory are in the public domain.

See docs/licenses for licenses of dependencies.

  • 2.1.3.dev8(Oct 17, 2022)

  • 2.1.3.dev6(Oct 1, 2022)

    💀

    🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴
    👻python3 -m pip install pygame==2.1.3.dev6
    💀🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀👻🦴💀🦴

    What’s Changed

    It’s a lot.

    This is a pre-release for testing and giggles only.
    Got issues? Don’t just tell your therapist. Let us know too?
    Thanks to all.

    • 2.1.3.dev4 and 2.1.3dev5 by @illume in https://github.com/pygame/pygame/pull/3060
    • Fix more typestub warnings with dunders by @ankith26 in https://github.com/pygame/pygame/pull/3075
    • Fix APPMOUSEFOCUS naming, update const values by @ankith26 in https://github.com/pygame/pygame/pull/3043
    • Pkgdata import in init for PyInstaller by @Starbuck5 in https://github.com/pygame/pygame/pull/3082
    • Fix logos page by @Grimmys in https://github.com/pygame/pygame/pull/2977
    • Fix segfault in resource loading function by @ankith26 in https://github.com/pygame/pygame/pull/3089
    • Fix pygame logo image in README.rst by @novialriptide in https://github.com/pygame/pygame/pull/3090
    • Add black badge by @novialriptide in https://github.com/pygame/pygame/pull/3091
    • Use static dot declarations for type objects by @ankith26 in https://github.com/pygame/pygame/pull/3067
    • Windows prebuilts updates with freetype and SDL_ttf 2.0.18 by @Starbuck5 in https://github.com/pygame/pygame/pull/3086
    • Get rid of sprintf calls in the codebase by @ankith26 in https://github.com/pygame/pygame/pull/3041
    • fix/norm function pointer calls for METH_NOARGS by @pmp-p in https://github.com/pygame/pygame/pull/3080
    • Update list of datafiles in generated docs by @wxh06 in https://github.com/pygame/pygame/pull/3073
    • Improve draw doc accuracy and example style by @Starbuck5 in https://github.com/pygame/pygame/pull/3074
    • Check SDL version earlier, report known incompat (closes #2657) by @SnoopJeDi in https://github.com/pygame/pygame/pull/2661
    • Lint/format examples/*.py by @Starbuck5 in https://github.com/pygame/pygame/pull/3093
    • missing pointer cast fix by @pmp-p in https://github.com/pygame/pygame/pull/3104
    • Add a .clamp_magnitude() to Vector2 and Vector3 by @novialriptide in https://github.com/pygame/pygame/pull/2990
    • examples/mask.py change default image to one with alpha channel by @brccabral in https://github.com/pygame/pygame/pull/3111
    • mouse_get_pos takes no argument by @pmp-p in https://github.com/pygame/pygame/pull/3115
    • Small fixes to the documentation header by @hnrkcode in https://github.com/pygame/pygame/pull/3094
    • Rect and Color support collections.abc.Container, add tests and stubs by @ankith26 in https://github.com/pygame/pygame/pull/3066
    • Don’t raise python errors in v4l2_read_frame by @ankith26 in https://github.com/pygame/pygame/pull/3052
    • fix name/definition conflict for pgSurface_New by @pmp-p in https://github.com/pygame/pygame/pull/3106
    • Add pygame.font.get_sdl_ttf_version() for getting version of SDL_ttf library by @mariospapaz in https://github.com/pygame/pygame/pull/3095
    • Math’s Vectors have not documented methods by @gresm in https://github.com/pygame/pygame/pull/3122
    • Event tests and types improvements (Minor event refactor part 3) by @ankith26 in https://github.com/pygame/pygame/pull/3063
    • Cleanup old compatibility code in windows sysfont by @Starbuck5 in https://github.com/pygame/pygame/pull/3126
    • Fix display.set_mode docs for DOUBLEBUF by @Starbuck5 in https://github.com/pygame/pygame/pull/3129
    • Make pgBuffer_Release retain previously set errors by @ankith26 in https://github.com/pygame/pygame/pull/3127
    • Change renderer names to strings in get_drivers by @zoldalma999 in https://github.com/pygame/pygame/pull/3132
    • Takeover of PR #2718 by @davidpendergast by @MyreMylar in https://github.com/pygame/pygame/pull/3118
    • Fixed Vector.clamp_magnitude() parameters by @novialriptide in https://github.com/pygame/pygame/pull/3133
    • SIMD version of BLEND_RGBA_MULT for 32bit surfaces by @MyreMylar in https://github.com/pygame/pygame/pull/2988
    • update constants.c to clang-format version 14.0 by @MyreMylar in https://github.com/pygame/pygame/pull/3137
    • Add pygame.context module by @Starbuck5 in https://github.com/pygame/pygame/pull/3100
    • Add pygame.get_pref_locales by @ankith26 in https://github.com/pygame/pygame/pull/3038
    • Use more optimal line functions in polygon by @Starbuck5 in https://github.com/pygame/pygame/pull/3141
    • Proposal: add Rect.collidelistallobjects that returns the colliding objects by @dr0id in https://github.com/pygame/pygame/pull/3026
    • Remove Solaris compatibility code to re-enable SIGALARM by @MyreMylar in https://github.com/pygame/pygame/pull/3142
    • Fix Vector subclass methods to return the correct subtype instance by @novialriptide in https://github.com/pygame/pygame/pull/3088
    • Raise only pygame.error when mixer loading fails by @ankith26 in https://github.com/pygame/pygame/pull/3148
    • Fix typo in SpriteIntro.rst tutorial by @JoshuaDRose in https://github.com/pygame/pygame/pull/3154
    • Fixed windows version parsing in Camera that errored on versions like 8.1 by @Matiiss in https://github.com/pygame/pygame/pull/3158
    • Fix «-auto» setup.py argument not being used properly in buildconfig by @robertpfeiffer in https://github.com/pygame/pygame/pull/3157
    • Updates to moveit.py example by @dbrown3562 in https://github.com/pygame/pygame/pull/3146
    • Update to SDL 2.0.22 on Windows by @Starbuck5 in https://github.com/pygame/pygame/pull/3162
    • ball -> bat (typo fix) by @elgcodes in https://github.com/pygame/pygame/pull/3164
    • typo fix or -> for by @elgcodes in https://github.com/pygame/pygame/pull/3165
    • Fix sysfont.get_fonts stop returning None, warn fc-list issues by @ankith26 in https://github.com/pygame/pygame/pull/3159
    • Fix _sdl2.controller for static build, pygame.h is in _sdl2 parent directory by @pmp-p in https://github.com/pygame/pygame/pull/3105
    • Add SIMD versions of RGB_MUL blitter by @MyreMylar in https://github.com/pygame/pygame/pull/3136
    • fix typo in korean document by @EunhoKang in https://github.com/pygame/pygame/pull/3176
    • Add evfilter guard mutex, fix pymalloc without GIL (Minor event refactor part 2.1) by @ankith26 in https://github.com/pygame/pygame/pull/3177
    • Add test for fullscreen toggle by @PurityLake in https://github.com/pygame/pygame/pull/3171
    • SIMD versions of RGB_ADD, RGBA_ADD, RGB_MUL & RGBA_MUL by @MyreMylar in https://github.com/pygame/pygame/pull/3170
    • static build support for WebAssembly by @pmp-p in https://github.com/pygame/pygame/pull/3108
    • correction of a comment by @Yvant2000 in https://github.com/pygame/pygame/pull/3182
    • Regenerate cython files by @Starbuck5 in https://github.com/pygame/pygame/pull/3183
    • Simplify some boolean handling by @Starbuck5 in https://github.com/pygame/pygame/pull/3192
    • Fix DLL loading problems on Windows Store Python installations by @Starbuck5 in https://github.com/pygame/pygame/pull/3196
    • wasm: fence simd/avx by @pmp-p in https://github.com/pygame/pygame/pull/3191
    • Removed Python 2 nonzero by @blankRiot96 in https://github.com/pygame/pygame/pull/3194
    • Use CircleCI for manylinux aarch64 builds by @ankith26 in https://github.com/pygame/pygame/pull/3188
    • Remove custom JPEG saver by @Starbuck5 in https://github.com/pygame/pygame/pull/3180
    • Update build-emsdk.yml by @pmp-p in https://github.com/pygame/pygame/pull/3185
    • Improve clang format source file detection by @zoldalma999 in https://github.com/pygame/pygame/pull/3140
    • Clang format touch.c to fix failing lint tests by @ankith26 in https://github.com/pygame/pygame/pull/3201
    • Fix Chimp tutorial code to use the correct module name alias by @kharissa in https://github.com/pygame/pygame/pull/3205
    • Fix a few pylint issues by @ankith26 in https://github.com/pygame/pygame/pull/3206
    • pyupgrade —py36-plus **/*.py by @cclauss in https://github.com/pygame/pygame/pull/3208
    • Fix print () —> print() by @cclauss in https://github.com/pygame/pygame/pull/3213
    • Make latest pypy wheels on mac/linux, cibuildwheel on manylinux and other minor updates by @ankith26 in https://github.com/pygame/pygame/pull/3187
    • Remove more code for legacy Python by @cclauss in https://github.com/pygame/pygame/pull/3207
    • More Python f-strings with flynt by @cclauss in https://github.com/pygame/pygame/pull/3212
    • Add SIMD versions of RGB & RGBA BLEND_MAX, BLEND_MIN blit modes by @MyreMylar in https://github.com/pygame/pygame/pull/3181
    • Use custom SDL2_ttf on Windows by @Starbuck5 in https://github.com/pygame/pygame/pull/3193
    • Typos: get em out of here! by @Starbuck5 in https://github.com/pygame/pygame/pull/3216
    • setup.cfg: Sort pylint disables to simplify future edits by @cclauss in https://github.com/pygame/pygame/pull/3220
    • sysfont.py: check for emscripten platform by @pmp-p in https://github.com/pygame/pygame/pull/3225
    • Fix undefined name: get_python_inc() by @cclauss in https://github.com/pygame/pygame/pull/3219
    • Added strikethrough option to Font by @MightyJosip in https://github.com/pygame/pygame/pull/2991
    • Fixed window not staying centered on second call of display.set_mode by @PurityLake in https://github.com/pygame/pygame/pull/3172
    • Fix Vector memory leak by @MightyJosip in https://github.com/pygame/pygame/pull/3236
    • wasm disable mutex usage, wasm CI updates by @ankith26 in https://github.com/pygame/pygame/pull/3203
    • wasm: pygame.surfarray could load on 3.10.5 backport by @pmp-p in https://github.com/pygame/pygame/pull/3246
    • Refactor font.render by @Starbuck5 in https://github.com/pygame/pygame/pull/3186
    • Fix Controller.rumble returning wrong bool on error by @ankith26 in https://github.com/pygame/pygame/pull/3248
    • wasm: wrong logic masks pgExc_SDLError by @pmp-p in https://github.com/pygame/pygame/pull/3247
    • Make textinput show a candidate list by @Starbuck5 in https://github.com/pygame/pygame/pull/3244
    • Cleaned up test/README.TXT by @novialriptide in https://github.com/pygame/pygame/pull/3254
    • Fix typos in sprite docs by @StarDexterity in https://github.com/pygame/pygame/pull/3263
    • Fix Surf.set_palette to be usable without an initialized display by @Starbuck5 in https://github.com/pygame/pygame/pull/3259
    • Replaced some truth testing with is not None checks in sprite module by @Matiiss in https://github.com/pygame/pygame/pull/3271
    • Include user fonts for pygame.font.match_font() on Windows by @novialriptide in https://github.com/pygame/pygame/pull/3184
    • Add SysFont pygame.font.get_fonts() verification test by @SSS-Says-Snek in https://github.com/pygame/pygame/pull/3266
    • Fix wasm build when no PREFIX variable is defined by @ryanking13 in https://github.com/pygame/pygame/pull/3280
    • Remove deprecated blend argument from test and docs by @kevin-pease in https://github.com/pygame/pygame/pull/3281
    • Fix controller build on SDL < 2.0.9 by @Starbuck5 in https://github.com/pygame/pygame/pull/3272
    • Add unit test for display.gl_set_attribute() by @MyreMylar in https://github.com/pygame/pygame/pull/3256
    • Fix docs and types for math.Vector2.cross() return to float by @Vicky-Vicky27 in https://github.com/pygame/pygame/pull/3286
    • Prettify joystick documentation + add Nintendo Switch mapping by @novialriptide in https://github.com/pygame/pygame/pull/3290
    • Sprite typestub updates, use generics and protocols by @ankith26 in https://github.com/pygame/pygame/pull/3138
    • Adjusted examples and rewrote documentation accordingly by @dbrown3562 in https://github.com/pygame/pygame/pull/3092
    • More efficiently track pixels in AVX blitters by @Starbuck5 in https://github.com/pygame/pygame/pull/3294
    • Fix sprite docs DrawPlain —> RenderPlain by @fQ7N in https://github.com/pygame/pygame/pull/3298
    • Fix new static analyzer (VS 2022) warnings by @ankith26 in https://github.com/pygame/pygame/pull/3295
    • Cleaned up draw.aaline() code for small speedup by @itzpr3d4t0r in https://github.com/pygame/pygame/pull/3300
    • wasm: add pygame.gfxdraw to static preloader by @pmp-p in https://github.com/pygame/pygame/pull/3304
    • Raise minimum SDL to 2.0.4, patch so it can build on that by @Starbuck5 in https://github.com/pygame/pygame/pull/3239
    • Update SDL_ttf 2.20.0, SDL_mixer 2.6.0 on Windows by @Starbuck5 in https://github.com/pygame/pygame/pull/3287
    • Restore correct checksum for SDL_ttf windows dep download by @itzpr3d4t0r in https://github.com/pygame/pygame/pull/3329
    • setup.py: fix user+deprecation warnings on 3.11+ by @pmp-p in https://github.com/pygame/pygame/pull/3228
    • Add FASTCALL compat macros, update Color.update to use the same by @ankith26 in https://github.com/pygame/pygame/pull/3325
    • Fix latest stubtest issues by @ankith26 in https://github.com/pygame/pygame/pull/3332
    • Fix wrong relative imports in _sdl2 cython code by @pmp-p in https://github.com/pygame/pygame/pull/3313
    • Add use_compat to key.name, fix key_code compat issues by @ankith26 in https://github.com/pygame/pygame/pull/3312
    • Add srcrect NULL check to pgSurface_Blit by @MyreMylar in https://github.com/pygame/pygame/pull/3284
    • Add BGRA format for pycairo compatibility by @rlatowicz in https://github.com/pygame/pygame/pull/3338
    • Move alphabit.c SSE2 blitters to main SSE2 file by @Starbuck5 in https://github.com/pygame/pygame/pull/3296
    • Surface.blits() speedups and code cleanup by @itzpr3d4t0r in https://github.com/pygame/pygame/pull/3314
    • Optimized _vector_distance_helper by @itzpr3d4t0r in https://github.com/pygame/pygame/pull/3335
    • Use macos-12 for all Mac CI builds by @ankith26 in https://github.com/pygame/pygame/pull/3347
    • added aliases for pygame.image.(to|from)string by @Emc2356 in https://github.com/pygame/pygame/pull/3321
    • Remove constants repetition and duplicate define by @Starbuck5 in https://github.com/pygame/pygame/pull/3344
    • Add clamp(val, min, max) function to pygame.math by @JamesC01 in https://github.com/pygame/pygame/pull/3326
    • BGRA format added to fromstring & tostring by @rlatowicz in https://github.com/pygame/pygame/pull/3342
    • Use memcpy and memset when appropriate by @Starbuck5 in https://github.com/pygame/pygame/pull/3364
    • SDL_UCS4ToUTF8 may exist from SDL_keyboard.c by @pmp-p in https://github.com/pygame/pygame/pull/3349
    • edited docs for pygame.Vector2.angle_to by @oddbookworm in https://github.com/pygame/pygame/pull/3359
    • Deprecate Color.set_length by @blankRiot96 in https://github.com/pygame/pygame/pull/3352
    • Vendor in SDL PNG save function, fix new 2.1.3 regression by @ankith26 in https://github.com/pygame/pygame/pull/3376
    • Merge 32/64bit SSE blitter codepaths by @Starbuck5 in https://github.com/pygame/pygame/pull/3375
    • Document pygame.math.Vector epsilon attribute by @oddbookworm in https://github.com/pygame/pygame/pull/3373
    • test.test_utils.run_tests.py: Fix exit using RuntimeError for better message by @Vazno in https://github.com/pygame/pygame/pull/3382
    • changed the f strings (sysfont.py) by @lebedevhhh in https://github.com/pygame/pygame/pull/3391
    • setup.py | io module no longer used. by @Vazno in https://github.com/pygame/pygame/pull/3388
    • Update DisplayModes.rst — PEP Changes by @JoshuaDRose in https://github.com/pygame/pygame/pull/3385
    • Fix some METH_NOARGS usage, use METH_O where possible by @ankith26 in https://github.com/pygame/pygame/pull/3366
    • Make pygame.math.clamp only take numbers by @JamesC01 in https://github.com/pygame/pygame/pull/3361
    • Add _GenericVector to math typestubs, fixes by @ankith26 in https://github.com/pygame/pygame/pull/3150
    • Fix tests that had overshadowed names by @ankith26 in https://github.com/pygame/pygame/pull/3384
    • Replaced more expressions to f strings by @Vazno in https://github.com/pygame/pygame/pull/3392
    • scale(), scale_by(), smoothscale(), smoothscale_by() reorganization and speed up by @itzpr3d4t0r in https://github.com/pygame/pygame/pull/3319
    • config_unix: Removed unused sys import by @Vazno in https://github.com/pygame/pygame/pull/3397
    • Fix edge case bug in Vector.move_towards, add more tests by @ankith26 in https://github.com/pygame/pygame/pull/3400
    • Go back to old memcpy strategy for non-flip flip by @Starbuck5 in https://github.com/pygame/pygame/pull/3416
    • Fix incref issue in PixelArray context manager API by @ankith26 in https://github.com/pygame/pygame/pull/3414
    • Update some deps in manylinux scripts by @ankith26 in https://github.com/pygame/pygame/pull/3042
    • fix CPython was built with clang instead of gcc by @pmp-p in https://github.com/pygame/pygame/pull/3381
    • Relax SDL minor version exact match check by @ankith26 in https://github.com/pygame/pygame/pull/3428
    • Clean bash-completion file in macdeps builds by @ankith26 in https://github.com/pygame/pygame/pull/3431
    • Optimized rect getters by @itzpr3d4t0r in https://github.com/pygame/pygame/pull/3401
    • Delete rect subscripts should error not segfault by @ankith26 in https://github.com/pygame/pygame/pull/3440
    • Vector clamp shouldn’t allow kwargs, improve error reporting and unit tests by @ankith26 in https://github.com/pygame/pygame/pull/3396
    • Make sure set_mode always returns a cleared window by @ankith26 in https://github.com/pygame/pygame/pull/3317
    • Improved mixer.set_reserved() documentation by @Vicky-Vicky27 in https://github.com/pygame/pygame/pull/3434
    • SSE alpha blitter optimization by @Starbuck5 in https://github.com/pygame/pygame/pull/3378
    • Add Spanish translation of chimp tutorial by @stefpivser in https://github.com/pygame/pygame/pull/3421
    • Update and sync SDL_mixer and SDL_ttf to 2.6.2 and 2.20.1 respectively by @ankith26 in https://github.com/pygame/pygame/pull/3433
    • Compile freetype with harfbuzz, reduce manylinux wheelsize by @ankith26 in https://github.com/pygame/pygame/pull/3445
    • Freshen up arraydemo.py by @Starbuck5 in https://github.com/pygame/pygame/pull/3453
    • Refactor examples/mask.py by @pycoinfu in https://github.com/pygame/pygame/pull/3455
    • Fix new mypy-0.981 fails by @ankith26 in https://github.com/pygame/pygame/pull/3470

    New Contributors

    • @wxh06 made their first contribution in https://github.com/pygame/pygame/pull/3073
    • @SnoopJeDi made their first contribution in https://github.com/pygame/pygame/pull/2661
    • @brccabral made their first contribution in https://github.com/pygame/pygame/pull/3111
    • @mariospapaz made their first contribution in https://github.com/pygame/pygame/pull/3095
    • @JoshuaDRose made their first contribution in https://github.com/pygame/pygame/pull/3154
    • @Matiiss made their first contribution in https://github.com/pygame/pygame/pull/3158
    • @dbrown3562 made their first contribution in https://github.com/pygame/pygame/pull/3146
    • @elgcodes made their first contribution in https://github.com/pygame/pygame/pull/3164
    • @EunhoKang made their first contribution in https://github.com/pygame/pygame/pull/3176
    • @PurityLake made their first contribution in https://github.com/pygame/pygame/pull/3171
    • @Yvant2000 made their first contribution in https://github.com/pygame/pygame/pull/3182
    • @kharissa made their first contribution in https://github.com/pygame/pygame/pull/3205
    • @StarDexterity made their first contribution in https://github.com/pygame/pygame/pull/3263
    • @SSS-Says-Snek made their first contribution in https://github.com/pygame/pygame/pull/3266
    • @ryanking13 made their first contribution in https://github.com/pygame/pygame/pull/3280
    • @kevin-pease made their first contribution in https://github.com/pygame/pygame/pull/3281
    • @Vicky-Vicky27 made their first contribution in https://github.com/pygame/pygame/pull/3286
    • @fQ7N made their first contribution in https://github.com/pygame/pygame/pull/3298
    • @itzpr3d4t0r made their first contribution in https://github.com/pygame/pygame/pull/3300
    • @rlatowicz made their first contribution in https://github.com/pygame/pygame/pull/3338
    • @Emc2356 made their first contribution in https://github.com/pygame/pygame/pull/3321
    • @JamesC01 made their first contribution in https://github.com/pygame/pygame/pull/3326
    • @oddbookworm made their first contribution in https://github.com/pygame/pygame/pull/3359
    • @Vazno made their first contribution in https://github.com/pygame/pygame/pull/3382
    • @lebedevhhh made their first contribution in https://github.com/pygame/pygame/pull/3391
    • @stefpivser made their first contribution in https://github.com/pygame/pygame/pull/3421
    • @pycoinfu made their first contribution in https://github.com/pygame/pygame/pull/3455

    Full Changelog: https://github.com/pygame/pygame/compare/2.1.3.dev4…2.1.3.dev6

    Source code(tar.gz)
    Source code(zip)
    pygame-2.1.3.dev6-pp36-pypy36_pp73-win32.whl(9.69 MB)
    pygame-2.1.3.dev6-cp36-cp36m-win32.whl(9.72 MB)
    pygame-2.1.3.dev6-cp37-cp37m-win32.whl(9.72 MB)
    pygame-2.1.3.dev6-cp38-cp38-win32.whl(9.73 MB)
    pygame-2.1.3.dev6-cp39-cp39-win32.whl(9.73 MB)
    pygame-2.1.3.dev6-cp310-cp310-win32.whl(9.72 MB)
    pygame-2.1.3.dev6-cp36-cp36m-win_amd64.whl(10.05 MB)
    pygame-2.1.3.dev6-cp37-cp37m-win_amd64.whl(10.05 MB)
    pygame-2.1.3.dev6-cp38-cp38-win_amd64.whl(10.06 MB)
    pygame-2.1.3.dev6-cp39-cp39-win_amd64.whl(10.06 MB)
    pygame-2.1.3.dev6-cp310-cp310-win_amd64.whl(10.05 MB)
    pygame-2.1.3.dev5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(12.69 MB)
    pygame-2.1.3.dev5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(12.69 MB)
    pygame-2.1.3.dev5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(12.70 MB)
    pygame-2.1.3.dev5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(12.71 MB)
    pygame-2.1.3.dev5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(12.69 MB)
    pygame-2.1.3.dev6-cp36-cp36m-macosx_10_9_x86_64.whl(12.27 MB)
    pygame-2.1.3.dev6-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl(16.86 MB)
    pygame-2.1.3.dev6-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(17.73 MB)
    pygame-2.1.3.dev6-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(11.93 MB)
    pygame-2.1.3.dev6-cp37-cp37m-macosx_10_9_x86_64.whl(12.26 MB)
    pygame-2.1.3.dev6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl(16.86 MB)
    pygame-2.1.3.dev6-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(17.73 MB)
    pygame-2.1.3.dev6-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(11.93 MB)
    pygame-2.1.3.dev6-cp38-cp38-macosx_10_9_x86_64.whl(12.27 MB)
    pygame-2.1.3.dev6-cp38-cp38-macosx_11_0_arm64.whl(11.33 MB)
    pygame-2.1.3.dev6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl(16.85 MB)
    pygame-2.1.3.dev6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl(17.72 MB)
    pygame-2.1.3.dev6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(11.95 MB)
    pygame-2.1.3.dev6-cp39-cp39-macosx_10_9_x86_64.whl(12.28 MB)
    pygame-2.1.3.dev6-cp39-cp39-macosx_11_0_arm64.whl(11.34 MB)
    pygame-2.1.3.dev6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl(16.85 MB)
    pygame-2.1.3.dev6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl(17.72 MB)
    pygame-2.1.3.dev6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(11.95 MB)
    pygame-2.1.3.dev6-cp310-cp310-macosx_10_9_x86_64.whl(12.27 MB)
    pygame-2.1.3.dev6-cp310-cp310-macosx_11_0_arm64.whl(11.33 MB)
    pygame-2.1.3.dev6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(11.93 MB)
    pygame-2.1.3.dev6-pp37-pypy37_pp73-macosx_10_9_x86_64.whl(13.09 MB)
    pygame-2.1.3.dev6-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(11.87 MB)
    pygame-2.1.3.dev6-pp38-pypy38_pp73-macosx_10_9_x86_64.whl(13.10 MB)
    pygame-2.1.3.dev6-pp39-pypy39_pp73-macosx_10_9_x86_64.whl(13.12 MB)

  • 2.1.3.dev4(Feb 27, 2022)

  • 2.1.3.dev2(Feb 19, 2022)

    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐
    🌼🌸 python3 -m pip install pygame==2.1.3.dev2
    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐
    

    This is a development release, to give more people the opportunity to test out the work we’ve already done. We still have a big pile of PRs with a lot more changes coming for the 2.1.3 release milestone.

    Before we get to what’s new, here’s something to ponder…

    «Real education means to inspire people to live more abundantly, to learn to begin with life as they find it and make it better,»
    — Carter G. Woodson

    What’s Changed

    • Add pixel format name into display info by @MyreMylar in https://github.com/pygame/pygame/pull/2964
    • Fix path dependencies by @SergioArnaud in https://github.com/pygame/pygame/pull/2975
    • Add test for pygame.locals by @ankith26 in https://github.com/pygame/pygame/pull/2958
    • Fix Pygame imported class typehints by @MightyJosip in https://github.com/pygame/pygame/pull/2965
    • fix some bugs in camera.py by @ankith26 in https://github.com/pygame/pygame/pull/2961
    • clean modinit code, fix bugs, use recommended API by @ankith26 in https://github.com/pygame/pygame/pull/2952
    • Python2 to Python3 code modernization by @novialriptide in https://github.com/pygame/pygame/pull/2984
    • SDL 2.0.20 by @illume in https://github.com/pygame/pygame/pull/2983
    • Update the image doc, delineate bytes and str by @Starbuck5 in https://github.com/pygame/pygame/pull/2959
    • adding missing copy test for Vector3 by @JovialKnoll in https://github.com/pygame/pygame/pull/3000
    • New black formatting by @novialriptide in https://github.com/pygame/pygame/pull/3013
    • Misc fixes: Fix UCS_4 UCS4 typo, incorrect color methods export and display.c error handling bugs by @ankith26 in https://github.com/pygame/pygame/pull/2987
    • Snake casify _sdl2.video.Image.flipX and .flipY by @avaxar in https://github.com/pygame/pygame/pull/2978
    • Removed unused imports by @novialriptide in https://github.com/pygame/pygame/pull/3016
    • Fix warnings, make warnings error on CI by @ankith26 in https://github.com/pygame/pygame/pull/2919
    • Added Rect typing by @novialriptide in https://github.com/pygame/pygame/pull/2969
    • Fix there typo in tests.rst by @eoghanriley in https://github.com/pygame/pygame/pull/3022
    • C code cleanups + cdrom/overlay removal by @Starbuck5 in https://github.com/pygame/pygame/pull/3014
    • Make sure surfaces start as opaque black. (MacOS) by @Starbuck5 in https://github.com/pygame/pygame/pull/2973
    • Add scale_by, smoothscale_by functions by @Starbuck5 in https://github.com/pygame/pygame/pull/2723
    • Fix really tiny grammar mistake by @gresm in https://github.com/pygame/pygame/pull/3027
    • Font rwops by @Starbuck5 in https://github.com/pygame/pygame/pull/2911
    • Add optional parameter ‘consider_alpha’ to the transform.average_colo… by @dr0id in https://github.com/pygame/pygame/pull/2968
    • pygame.docs: remove warning in docs generation due to a reference to… by @dr0id in https://github.com/pygame/pygame/pull/3029
    • Add __new__ and __init__ functions for some types by @zoldalma999 in https://github.com/pygame/pygame/pull/3001
    • Regenerate cython files by @ankith26 in https://github.com/pygame/pygame/pull/3032

    New Contributors

    • @SergioArnaud made their first contribution in https://github.com/pygame/pygame/pull/2975
    • @JovialKnoll made their first contribution in https://github.com/pygame/pygame/pull/3000
    • @eoghanriley made their first contribution in https://github.com/pygame/pygame/pull/3022
    • @gresm made their first contribution in https://github.com/pygame/pygame/pull/3027

    Full Changelog: https://github.com/pygame/pygame/compare/2.1.2…2.1.3.dev2

    Source code(tar.gz)
    Source code(zip)
    pygame-2.1.3.dev2-pp36-pypy36_pp73-win32.whl(7.70 MB)
    pygame-2.1.3.dev2-cp36-cp36m-win32.whl(7.73 MB)
    pygame-2.1.3.dev2-cp37-cp37m-win32.whl(7.73 MB)
    pygame-2.1.3.dev2-cp38-cp38-win32.whl(7.74 MB)
    pygame-2.1.3.dev2-cp39-cp39-win32.whl(7.74 MB)
    pygame-2.1.3.dev2-cp310-cp310-win32.whl(7.74 MB)
    pygame-2.1.3.dev2-cp36-cp36m-win_amd64.whl(8.04 MB)
    pygame-2.1.3.dev2-cp37-cp37m-win_amd64.whl(8.04 MB)
    pygame-2.1.3.dev2-cp38-cp38-win_amd64.whl(8.05 MB)
    pygame-2.1.3.dev2-cp39-cp39-win_amd64.whl(8.05 MB)
    pygame-2.1.3.dev2-cp310-cp310-win_amd64.whl(8.05 MB)
    pygame-2.1.3.dev2-cp36-cp36m-macosx_10_9_x86_64.whl(8.46 MB)
    pygame-2.1.3.dev2-cp37-cp37m-macosx_10_9_x86_64.whl(8.45 MB)
    pygame-2.1.3.dev2-cp38-cp38-macosx_10_9_x86_64.whl(8.46 MB)
    pygame-2.1.3.dev2-cp38-cp38-macosx_11_0_arm64.whl(7.96 MB)
    pygame-2.1.3.dev2-cp39-cp39-macosx_10_9_x86_64.whl(8.47 MB)
    pygame-2.1.3.dev2-cp39-cp39-macosx_11_0_arm64.whl(7.97 MB)
    pygame-2.1.3.dev2-cp310-cp310-macosx_10_9_x86_64.whl(8.47 MB)
    pygame-2.1.3.dev2-cp310-cp310-macosx_11_0_arm64.whl(7.97 MB)
    pygame-2.1.3.dev2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl(8.30 MB)
    pygame-2.1.3.dev2.tar.gz(9.66 MB)
    pygame-2.1.3.dev2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl(15.22 MB)
    pygame-2.1.3.dev2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(16.09 MB)
    pygame-2.1.3.dev2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl(45.96 MB)
    pygame-2.1.3.dev2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(58.92 MB)
    pygame-2.1.3.dev2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(68.41 MB)
    pygame-2.1.3.dev2-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl(51.63 MB)
    pygame-2.1.3.dev2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(59.87 MB)
    pygame-2.1.3.dev2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl(15.22 MB)
    pygame-2.1.3.dev2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(16.09 MB)
    pygame-2.1.3.dev2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl(45.95 MB)
    pygame-2.1.3.dev2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(58.92 MB)
    pygame-2.1.3.dev2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(68.41 MB)
    pygame-2.1.3.dev2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl(51.64 MB)
    pygame-2.1.3.dev2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(59.87 MB)
    pygame-2.1.3.dev2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl(15.21 MB)
    pygame-2.1.3.dev2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl(16.08 MB)
    pygame-2.1.3.dev2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl(45.97 MB)
    pygame-2.1.3.dev2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(58.93 MB)
    pygame-2.1.3.dev2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(68.41 MB)
    pygame-2.1.3.dev2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl(51.66 MB)
    pygame-2.1.3.dev2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(59.87 MB)
    pygame-2.1.3.dev2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl(15.21 MB)
    pygame-2.1.3.dev2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl(16.08 MB)
    pygame-2.1.3.dev2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl(45.98 MB)
    pygame-2.1.3.dev2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(58.93 MB)
    pygame-2.1.3.dev2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(68.41 MB)
    pygame-2.1.3.dev2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl(51.67 MB)
    pygame-2.1.3.dev2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(59.88 MB)
    pygame-2.1.3.dev2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl(45.98 MB)
    pygame-2.1.3.dev2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(58.93 MB)
    pygame-2.1.3.dev2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(68.41 MB)
    pygame-2.1.3.dev2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl(51.67 MB)
    pygame-2.1.3.dev2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(59.87 MB)
    pygame-2.1.3.dev2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl(45.79 MB)
    pygame-2.1.3.dev2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(58.76 MB)
    pygame-2.1.3.dev2-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl(51.35 MB)
    pygame-2.1.3.dev2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(59.64 MB)
    jpegsr9d.zip(1.08 MB)
    prebuilt-x64-pygame-1.9.2-20150922.zip(2.66 MB)
    prebuilt-x86-pygame-1.9.2-20150922.zip(2.47 MB)

  • 2.1.2(Dec 27, 2021)

  • 2.1.1(Dec 24, 2021)

    Don’t worry, relax… have a pygame.

    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
    🌼🌸 python3 -m pip install pygame==2.1.1
    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻

    The north enters a winter solstice and the south a summer solstice.
    The shortest day of the year for people up top,
    and the longest day of the year for people down under.
    
    For people in the middle, it's pretty much the same every day ;)
    
    Whatever the length of your day, this pygame is for you.
    

    Before we get to What’s new in pygame 2.1.1…

    At the bottom of this post we have a special treat…
    some games people have made this year.
    Some of the themes: Aliens, moose, cars, giant robots, trees, and… menus


    But first…

    What’s Changed?

    We have a new SDL 2.0.18 release which brings a lot of fixes and optimizations.

    What changed in SDL 2.0.18?

    In addition to lots of bug fixes, here are the major changes in this SDL release:

    General:

    • The SDL wiki documentation and development headers are automatically kept in sync
    • Each function has information about in which version of SDL it was introduced
    • SDL-specific CMake options are now prefixed with ‘SDL_’. Be sure to update your CMake build scripts accordingly!
    • Added the hint SDL_HINT_APP_NAME to let SDL know the name of your application for various places it might show up in system information
    • Added SDL_RenderGeometry() and SDL_RenderGeometryRaw() to allow rendering of arbitrary shapes using the SDL 2D render API
    • Added SDL_SetTextureUserData() and SDL_GetTextureUserData() to associate application data with an SDL texture
    • Added SDL_RenderWindowToLogical() and SDL_RenderLogicalToWindow() to convert between window coordinates and logical render coordinates
    • Added SDL_RenderSetVSync() to change whether a renderer present is synchronized with vblank at runtime
    • Added SDL_PremultiplyAlpha() to premultiply alpha on a block of SDL_PIXELFORMAT_ARGB8888 pixels
    • Added a window event SDL_WINDOWEVENT_DISPLAY_CHANGED which is sent when a window changes what display it’s centered on
    • Added SDL_GetWindowICCProfile() to query a window’s ICC profile, and a window event SDL_WINDOWEVENT_ICCPROF_CHANGED that is sent when it changes
    • Added the hint SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY to allow EGL windows to be transparent instead of opaque
    • SDL_WaitEvent() has been redesigned to use less CPU in most cases
    • Added SDL_SetWindowMouseRect() and SDL_GetWindowMouseRect() to confine the mouse cursor to an area of a window
    • You can now read precise mouse wheel motion using ‘preciseX’ and ‘preciseY’ event fields
    • Added SDL_GameControllerHasRumble() and SDL_GameControllerHasRumbleTriggers() to query whether a game controller supports rumble
    • Added SDL_JoystickHasRumble() and SDL_JoystickHasRumbleTriggers() to query whether a joystick supports rumble
    • SDL’s hidapi implementation is now available as a public API in SDL_hidapi.h

    Windows:

    • Improved relative mouse motion over Windows Remote Desktop
    • Added the hint SDL_HINT_IME_SHOW_UI to show native UI components instead of hiding them (defaults off)

    Windows/UWP:

    • WGI is used instead of XInput for better controller support in UWP apps

    Linux:

    • Added the hint SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME to set the activity that’s displayed by the system when the screensaver is disabled
    • Added the hint SDL_HINT_LINUX_JOYSTICK_CLASSIC to control whether /dev/input/js* or /dev/input/event* are used as joystick devices
    • Added the hint SDL_HINT_JOYSTICK_DEVICE to allow the user to specify devices that will be opened in addition to the normal joystick detection
    • Added SDL_LinuxSetThreadPriorityAndPolicy() for more control over a thread priority on Linux

    Android:

    • Added support for audio output and capture using AAudio on Android 8.1 and newer
    • Steam Controller support is disabled by default, and can be enabled by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to «1» before calling SDL_Init()

    Apple Arcade:

    • Added SDL_GameControllerGetAppleSFSymbolsNameForButton() and SDL_GameControllerGetAppleSFSymbolsNameForAxis() to support Apple Arcade titles

    iOS:

    • Added documentation that the UIApplicationSupportsIndirectInputEvents key must be set to true in your application’s Info.plist in order to get real Bluetooth mouse events.
    • Steam Controller support is disabled by default, and can be enabled by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to «1» before calling SDL_Init()

    We also have a new Vector2d.copy() method, a way to check if rect in rect. Some draw assembly optimizations are enabled on aarch64 (M1 and rasbperry pi), and rect drawing is much faster.

    Work continues on code cleanup, and we reached a milestone where all PRs are checked for code formatting and linting. Work on enforcing stricter C level static analysis checks is in progress. Our examples were cleaned up to use simplified color names, and semantic variable names for colors (instead of naming the variables after colors). Work on other cleanups progresses too… but we can tell you about that in the next release notes!

    Bugfixes

    • Working gamma test on windows by @MyreMylar in https://github.com/pygame/pygame/pull/2906
    • Freetype: Fix intermittent crash with test_font_file_not_found by @illume in https://github.com/pygame/pygame/pull/2944

    New contributor bugfixes

    • @JoshuaShequin fixed the return value for music.get_pos() after pausing and unpausing. #2899
    • Addressing set error inconsistencies in certain src_c/{base.c, rect.c} functions by @anmallie in https://github.com/pygame/pygame/pull/2934
    • @mingzhang96 fixed SysFont on MacOS not being able to find Arial on their system. #2849

    @ankith26

    • a strange issue where pygame failed on import on some systems in #2870
    • FileNotFoundErrors not being displayed properly from pathlib loading in #2840
    • transform.average_color failing on the ppc64le architecture with -O3 in #2876
    • hang on exit fix in #2816
    • GIL release in transform module in https://github.com/pygame/pygame/pull/2904

    @MightyJosip

    • pygame.version.SDL and pygame.version.vernum fixed in https://github.com/pygame/pygame/pull/2938
    • Large ellipses are no longer drawn as diamonds in #2880
    • Fixed a pygame.draw.rect bug where unfilled drawn rects had weird corners in #2927. In the process of this pygame.draw.rect saw some large speedups.

    @Starbuck5

    • The initial display surface could have artifacts and not be set up right on MacOS in #2859
    • freetype.Font could raise IOError instead of FileNotFoundError in #2922
    • Writing fixes, corrected audio device mistake in https://github.com/pygame/pygame/pull/2925

    Enhancements

    • SDL 2.0.18 has now been added. Skip some focus related tests by @illume in https://github.com/pygame/pygame/pull/2939
    • @Starbuck5 added a shiny new, special icon just for MacOS (provided by @TomSchimansky), improving pygame’s look on MacOS in #2858
    • New contributor @michaelasp added a __contains__ operation to the Rect class, allowing you to check if Rect1 in Rect2 in #2897
    • New contributor @novialriptide added a copy() method to Vector2 and Vector3. #2894
    • New contributor @GustavoQuintero99 added a couple CSS colors we were missing into pygame’s named colors. #2865
    • @ankith26 enabled blitting optimizations by default on aarch64 (M1 and new raspberry) in #2818

    Docs and Types

    • @AvaxarXapaxa fixed a bunch of «it’s» that should’ve been «its.» #2923
    • @Starbuck5 added the documentation into the installation itself. python -m pygame.docs will launch a local copy of the docs now. #2826
    • New contributor @Radiicall fixed a spelling mistake. #2864
    • New contributor @novialriptide fixed a grammar mistake in #2835 and fixed some typing for AbstractGroup in #2896 and #2930
    • @ankith26 cleaned type stubs and fixed some of them in #2882

    Deprecations

    • New contributor @CAPTAIN1947 deprecated sprite.LayeredDirty.set_timing_treshold in favor of set_timing_threshold. #2921
    • New contributor @novialriptide deprecated Vector.rotate_ip_rad methods in favor of the more consistent Vector.rotate_rad_ip. #2863
    • @zoldalma999 added deprecation warnings and undocumented the long deprecated enable/disable swizzle functions in pygame.math. #2856
    • @ankith26 deprecated the fastevent module because the SDL2 event queue makes it unnecessary. A python shim is still available. #2843

    Development and Cleanups

    • Reform colors across the examples by @maxsteep, @rbsampang, @ian-sartor, and @taimur-hassan in https://github.com/pygame/pygame/pull/2901
    • @Grimmys made sure we can still build the docs without worrying about all the requirements of building pygame. #2907
    • @bydariogamer cleaned up python code throughout the codebase, now that it doesn’t need to worry about Python2 or SDL1. #2833, #2845
    • @ankith26 did plenty of cleaning up too, through C code and python code. #2844, #2854
    • @Starbuck5 did some miscellaneous fixes, including raising the cython language level. Replaced get_num_audio_devices and get_audio_device_name with get_audio_device_names. #2841, #2920
    • @illume continued on the work of @queueseven and added custom blend modes to the _sdl2.Renderer class. #2790
    • @Pierre-Sassoulas added setup.py lint to keep the codebase squeaky clean. @illume integrated it into the pygame development workflow by adding setup.py format and a format test to CI, and formatted all the code in the repository. #2285, #2857, #2842

    Many many special Thanks go to

    • everyone writing up issues, answering questions, sharing your work, or moderating discussions on different forums.
    • code reviewers, doing an important and tireless job. Thanks especially to @ankith26, @MyreMylar, @Starbuck5, @illume, @MightyJosip and for to new reviewers!
    • patreon.com/pygame sponsors: Daniel Lawrence, Leif Theden, zoldalma, rosa, Dasterin, and Anonymous. With their help half of the first patreon goal of covering the monthly hosting costs has been covered.
    • the people supporting pygame financially by buying the pre-release of a pygame book. It’s a book by a long time pygame contributor where all funds go towards pygame development.
    • The reddit, and discord mods for making nice communities where people can hang out
    • Stackoverflow Q&A folk
    • People sharing code to their games on github the pygame website, and elsewhere.

    Thanks to you! It’s hard making these release notes (Thanks @Starbuck5 and @illume). If we’ve missed someone, or made a mistake… firstly sorry! Secondly, feel free to get in touch with us to make a correction.


    Some games and apps

    Here’s a few things people have released recently using pygame (but made mostly with their own sweat and tears).


    Tempest Run

    And then this summer, tank king Lord Commentarios of Freeduck and Spooky made «Tempest Run» for a jam hosted by this server:

    A cross between Tempest (1981) and Temple Run (2011), «Tempest Run» puts a new spin on those iconic games and was made for the Pygame Community Summer Jam 2021, whose theme was «Recreate an old game with a twist.»

    • url: https://tank-king.itch.io/tempest-run
    • github: https://github.com/davidpendergast/pygame-summer-team-jam
    • youtube: https://www.youtube.com/watch?v=48InrM39w5g&ab_channel=RounakBhowmik


    RESYNC, A platformer about robots.

    • app/game link: not available yet, still in development
    • title: RESYNC (subject to change~)
    • github/source host link: https://github.com/davidpendergast/circuits
    • «dev log» https://twitter.com/Ghast_NEOH


    GRAVITY

    A puzzle game where you can control the gravity in the room you’re in.

    • github: https://github.com/novialriptide/Gravity


    Flyre

    Flyre is a 2d pixel art shoot-em-up, where you improve through a skill tree !

    • url: https://cozyfractal.itch.io/flyre
    • source: https://gitlab.com/ddorn/flyre
    • youtube trailer: https://www.youtube.com/watch?v=_AwWQzmCyjg


    Gearhead Caramel

    It’s been a year since the Typhon Incident, when a biomonster from the Age of Superpowers awoke and rampaged across the Earth. Aegis Overlord, having consolidated power on Luna, begins preparation to extend their domination across the solar system. The L5 Alliance attempts to maintain a fragile peace while their member-states bicker and war among themselves. To make matters worse, the cyberpop band Love Magnet just announced that they’re splitting up. I trust that all of you know what this means.

    It’s time to fire up your giant robot and go do some stomping.

    • url: https://gearhead.itch.io/gearhead-caramel
    • github: https://github.com/jwvhewitt/gearhead-caramel
    • youtube: https://www.youtube.com/watch?v=b1441O0PT5E&feature=emb_logo



    Imperios Estelares — Surgimiento

    Imperios Estelares — Surgimiento is a turn-based 4X strategy game set on space, in the Orion Arm. You can choose between nine different species, expand by dozens of solar systems and hundreds of planets. Design your warships, recruit troops and crush your rivals or develop your technologies to get a diplomatic victory or a combination of everything to achieve first place at the end of the game.

    https://a5-studios.itch.io/imperios-estelares-surgimiento



    PySprint

    Remake the Atari ST port of Super Sprint by Electric Dreams from 1985 in Python with Pygame

    • github: https://github.com/salem-ok/PySprint#readme
    • twitter: https://twitter.com/salem_ok


    DUGA 2021

    My old game, DUGA has been updated and now supports hardware acceleration! Never has it been so smooth! Thanks to Pygame for updating to version 2 :-)

    • github: https://github.com/MaxwellSalmon/DUGA
    • twitter: https://twitter.com/MaxwellSalmon/status/1445479363433037824


    Run my dear LD49

    a Mini game where you play as a deer exercising on an UNSTABLE treadmill that is changing its speed unpredictably.

    • url: https://ldjam.com/events/ludum-dare/49/run-my-dear
    • github: https://github.com/OmarMoBadr/Run-my-Dear-LD49

    Tree Maker

    Create different trees and tree-like structures using fractal-like math.

    Many natural things exhibit patterns of self-similarity. For example, a whole tree looks like a branch and a branch looks like a leaf.

    • url: https://2pi360.itch.io/tree-maker
    • source: https://gitlab.com/2pi360/tree_maker



    Pygame menu — 4.1.5

    Menu for pygame, simple, lightweight and easy to use

    • github: https://github.com/ppizarror/pygame-menu
    • url: https://pygame-menu.readthedocs.io/en/4.2.0/
    • url: https://www.pygame.org/project/3165/8089



    Thanks for stopping by. Ciao!

    Source code(tar.gz)
    Source code(zip)
    pygame-2.1.1-pp36-pypy36_pp73-win32.whl(7.69 MB)
    pygame-2.1.1-cp36-cp36m-win32.whl(7.73 MB)
    pygame-2.1.1-cp37-cp37m-win32.whl(7.73 MB)
    pygame-2.1.1-cp38-cp38-win32.whl(7.74 MB)
    pygame-2.1.1-cp39-cp39-win32.whl(7.74 MB)
    pygame-2.1.1-cp310-cp310-win32.whl(7.74 MB)
    pygame-2.1.1-cp36-cp36m-win_amd64.whl(8.04 MB)
    pygame-2.1.1-cp37-cp37m-win_amd64.whl(8.04 MB)
    pygame-2.1.1-cp38-cp38-win_amd64.whl(8.05 MB)
    pygame-2.1.1-cp39-cp39-win_amd64.whl(8.05 MB)
    pygame-2.1.1-cp310-cp310-win_amd64.whl(8.05 MB)
    pygame-2.1.1-cp36-cp36m-macosx_10_9_x86_64.whl(8.45 MB)
    pygame-2.1.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl(15.22 MB)
    pygame-2.1.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(16.09 MB)
    pygame-2.1.1-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl(17.75 MB)
    pygame-2.1.1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(20.22 MB)
    pygame-2.1.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(19.77 MB)
    pygame-2.1.1-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl(20.07 MB)
    pygame-2.1.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(20.82 MB)
    pygame-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl(8.45 MB)
    pygame-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl(15.22 MB)
    pygame-2.1.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(16.09 MB)
    pygame-2.1.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl(17.75 MB)
    pygame-2.1.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(20.22 MB)
    pygame-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(19.76 MB)
    pygame-2.1.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl(20.07 MB)
    pygame-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(20.81 MB)
    pygame-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl(8.46 MB)
    pygame-2.1.1-cp38-cp38-macosx_11_0_arm64.whl(7.95 MB)
    pygame-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl(15.21 MB)
    pygame-2.1.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl(16.08 MB)
    pygame-2.1.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl(17.77 MB)
    pygame-2.1.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(20.24 MB)
    pygame-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(19.78 MB)
    pygame-2.1.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl(20.08 MB)
    pygame-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(20.83 MB)
    pygame-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl(8.47 MB)
    pygame-2.1.1-cp39-cp39-macosx_11_0_arm64.whl(7.96 MB)
    pygame-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl(15.21 MB)
    pygame-2.1.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl(16.08 MB)
    pygame-2.1.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl(17.77 MB)
    pygame-2.1.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(20.24 MB)
    pygame-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(19.78 MB)
    pygame-2.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl(20.09 MB)
    pygame-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(20.83 MB)
    pygame-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl(8.47 MB)
    pygame-2.1.1-cp310-cp310-macosx_11_0_arm64.whl(7.96 MB)
    pygame-2.1.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl(17.77 MB)
    pygame-2.1.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(20.24 MB)
    pygame-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(19.78 MB)
    pygame-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(20.83 MB)
    pygame-2.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl(8.30 MB)
    pygame-2.1.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl(17.67 MB)
    pygame-2.1.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(20.17 MB)
    pygame-2.1.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl(19.94 MB)
    pygame-2.1.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(20.71 MB)
    pygame-2.1.1.tar.gz(9.66 MB)

  • 2.1.1.dev4(Dec 24, 2021)

  • 2.1.1.dev2(Dec 22, 2021)

  • 2.1.0(Nov 7, 2021)

  • 2.1.0.dev2(Nov 7, 2021)

  • 2.0.3(Oct 31, 2021)

    🍂🍊🌰🥮🥧🌆🌇🔥🎃🎑🏮🍂🍊🍂🥮🌰🎃🥮
    🥮 python3 -m pip install pygame==2.0.3
    🍊🍂🥮🌰🥧🌇🔥🌆🎃🏮🍂🍊🏮🍂🥮🌰🥧🥮

    Goodbye python 2, goodbye SDL 1.

    Firstly, everyone raise their glasses for python 2. This will (probably) be our last python 2 supporting release. From your weird unicode, to your print statement that didn’t need (). We will miss you, but we will always remember you.

    Secondly, raise a second glass (at the same time!) for SDL1. Oh, SDL 1.2.x how great it was to know you and use you on dead platforms like BeOS and DOS, with your now exotic features like cdrom support. So many pixels, so many sound waves. You stuck around with us several years after retirement, and for that we thank you. SDL 1, take your gold watch and enjoy your retro computing nostalgia after-life.

    The python 2 wheels will still be there, and you can still use SDL1 through the pygame 1.9.6 wheels if you need. But it’s time for us to move on.

    You can stop raising your glasses now. Onto the goodies!

    Here we go…

    There’s lots of build improvements in here, including support for M1 macs and much better linux support (fullscreen and multi touch is working!). There’s some regression fixes including on pygame.time.set_timer and when compiling from source on older linux distros. New in here is a loops keyword argument has been added to mixer.music.queue. The Camera module got some further improvements removing some unused legacy code and some code cleanups.

    One very cool highlight is that are UCS4 unicode (including emoji) rendering is working. Rendering emoji and some other human languages is now possible!

    We now have much better error newbie friendly messages for image/resource loading issues. Which should help people when they make typos or path issues when loading images. This is a common problem for newbies, so it’s a really nice improvement.

    A bunch of difficult bugs were fixed, and python 3.10 wheels for manylinux (which were accidentally forgotten in the 2.0.2 release). There were also some docs improvements for the new Cursor class and get_desktop_sizes function as well as some type improvements for the experimental _sdl2 modules.

    On mac and linux we are using libjpegturbo, so on those platforms jpeg loading should be smoking fast. Additionally lots of our dependencies on mac and linux have been improved (and they share the same build scripts now). Things like fluidsynth being actually compiled in and support for the opus sound files being compiled in properly.

    What’s Changed

    Here’s what we have in this release for you in a bit more detail. If you want ALL the details please scroll to the bottom to see the full commits and code diffs.

    • config_darwin.py improvements by @jmroot in https://github.com/pygame/pygame/pull/2768
    • Remove redundant python includes, fix compiler warnings on re-exported symbols by @ankith26 in https://github.com/pygame/pygame/pull/2673
    • GH Actions make /usr/local cache for mac deps by @ankith26 in https://github.com/pygame/pygame/pull/2762
    • Fix regression in set_timer, old events not removed by @ankith26 in https://github.com/pygame/pygame/pull/2769
    • Added loops option for mixer.music.queue by @thorhunter1 in https://github.com/pygame/pygame/pull/2770
    • document get_desktop_sizes by @robertpfeiffer in https://github.com/pygame/pygame/pull/2506
    • Add sdl2_video types by @Starbuck5 in https://github.com/pygame/pygame/pull/2664
    • Split GH actions mac builds into 5 matrix builds by @ankith26 in https://github.com/pygame/pygame/pull/2773
    • Change shield to 2.0.2 by @MayuSakurai in https://github.com/pygame/pygame/pull/2784
    • update mixer/music docs, unskip mp3 tests by @ankith26 in https://github.com/pygame/pygame/pull/2780
    • Lots of cleanups by @Starbuck5 in https://github.com/pygame/pygame/pull/2779
    • Simplify pygame resource loaders by @Starbuck5 in https://github.com/pygame/pygame/pull/2695
    • Camera improvements by @Starbuck5 in https://github.com/pygame/pygame/pull/2772
    • Add python 3.10 building in manylinux by @illume in https://github.com/pygame/pygame/pull/2787
    • More informative FileNotFoundError by @Starbuck5 in https://github.com/pygame/pygame/pull/2694
    • Added doc for Cursor object by @fortwoone in https://github.com/pygame/pygame/pull/2709
    • Continue on Cursor docs by @illume in https://github.com/pygame/pygame/pull/2788
    • Fix issue #2543 segfault in font dealloc after reinit by @REW1L in https://github.com/pygame/pygame/pull/2548
    • Old API removal in ft_unicode, sdlmain_osx cleanups by @ankith26 in https://github.com/pygame/pygame/pull/2433
    • BytesIO fix on 32-bit platforms by @ankith26 in https://github.com/pygame/pygame/pull/2776
    • Remove restriction on rendering 4-byte characters on pygame.font part 1 of 2 by @AvaxarXapaxa in https://github.com/pygame/pygame/pull/2627
    • Remove restriction on rendering 4-byte characters on pygame.font part 2 of 2 by @illume in https://github.com/pygame/pygame/pull/2746
    • test image: Fix test which relied on removed image by @illume in https://github.com/pygame/pygame/pull/2793
    • Redirect pygame github image to pygame webpage by @MightyJosip in https://github.com/pygame/pygame/pull/2789
    • fix syntax error for slightly older versions of libSDL by @ckuttruff in https://github.com/pygame/pygame/pull/2798
    • Build arm64 mac wheels on CI by @ankith26 in https://github.com/pygame/pygame/pull/2782
    • Remove travis again by @illume in https://github.com/pygame/pygame/pull/2803
    • add opus, brotli and bzip2 to dep builds by @ankith26 in https://github.com/pygame/pygame/pull/2804
    • Fix selection of manylinux to build by @illume in https://github.com/pygame/pygame/pull/2805
    • Fix portmidi building for wrong arch on m1 mac by @ankith26 in https://github.com/pygame/pygame/pull/2808

    New Contributors

    • @jmroot made their first contribution in https://github.com/pygame/pygame/pull/2768
    • @thorhunter1 made their first contribution in https://github.com/pygame/pygame/pull/2770
    • @MayuSakurai made their first contribution in https://github.com/pygame/pygame/pull/2784
    • @fortwoone made their first contribution in https://github.com/pygame/pygame/pull/2709
    • @REW1L made their first contribution in https://github.com/pygame/pygame/pull/2548
    • @ckuttruff made their first contribution in https://github.com/pygame/pygame/pull/2798
    • @AvaxarXapaxa made their first contribution in https://github.com/pygame/pygame/pull/2627

    Thanks all

    Thanks to all for reporting issues, doing reviews and helping out in other ways than code contributions. Especially issue reporters, wiki editors, discord mods/folk, redditors, patreons, and such like.

    As all releases, this one too would not have been possible without support from the community, from people submitting issues, to people making PRs for all kinds of improvements, from typo fixes, to fixing complex segfaults in C code, every contribution matters a lot!

    Special thanks are in order with with this release. For help with last minute testing by /dev/mario, @pkulev, @solozobov, @interstellartaurus, fxbeta and @kajott. Thanks!

    python3 -m pip install pygame==2.0.3


    • merged PRs since we started the pygame 2.0.3 series on the 10th of October 2021.
    • 114 Commits since 2.0.2 release

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.3-pp27-pypy_73-win32.whl(4.20 MB)
    pygame-2.0.3-pp36-pypy36_pp73-win32.whl(4.21 MB)
    pygame-2.0.3-cp27-cp27m-win32.whl(4.21 MB)
    pygame-2.0.3-cp35-cp35m-win32.whl(4.24 MB)
    pygame-2.0.3-cp36-cp36m-win32.whl(4.25 MB)
    pygame-2.0.3-cp37-cp37m-win32.whl(4.25 MB)
    pygame-2.0.3-cp38-cp38-win32.whl(4.26 MB)
    pygame-2.0.3-cp39-cp39-win32.whl(4.26 MB)
    pygame-2.0.3-cp310-cp310-win32.whl(4.26 MB)
    pygame-2.0.3-cp27-cp27m-win_amd64.whl(4.48 MB)
    pygame-2.0.3-cp35-cp35m-win_amd64.whl(4.56 MB)
    pygame-2.0.3-cp36-cp36m-win_amd64.whl(4.57 MB)
    pygame-2.0.3-cp37-cp37m-win_amd64.whl(4.57 MB)
    pygame-2.0.3-cp38-cp38-win_amd64.whl(4.58 MB)
    pygame-2.0.3-cp39-cp39-win_amd64.whl(4.58 MB)
    pygame-2.0.3-cp310-cp310-win_amd64.whl(4.58 MB)
    pygame-2.0.3-cp27-cp27m-macosx_10_9_x86_64.whl(4.82 MB)
    pygame-2.0.3-cp35-cp35m-macosx_10_9_x86_64.whl(4.82 MB)
    pygame-2.0.3-cp36-cp36m-macosx_10_9_x86_64.whl(5.01 MB)
    pygame-2.0.3-cp37-cp37m-macosx_10_9_x86_64.whl(4.99 MB)
    pygame-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl(5.00 MB)
    pygame-2.0.3-cp38-cp38-macosx_11_0_arm64.whl(4.54 MB)
    pygame-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl(5.01 MB)
    pygame-2.0.3-cp39-cp39-macosx_11_0_arm64.whl(4.55 MB)
    pygame-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl(5.01 MB)
    pygame-2.0.3-cp310-cp310-macosx_11_0_arm64.whl(4.55 MB)
    pygame-2.0.3-pp27-pypy_73-macosx_10_9_x86_64.whl(4.69 MB)
    pygame-2.0.3-pp36-pypy36_pp73-macosx_10_9_x86_64.whl(4.69 MB)
    pygame-2.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl(4.83 MB)
    pygame-2.0.3.tar.gz(5.53 MB)
    pygame-2.0.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl(11.79 MB)
    pygame-2.0.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.68 MB)
    pygame-2.0.3-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl(11.81 MB)
    pygame-2.0.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.70 MB)
    pygame-2.0.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl(11.82 MB)
    pygame-2.0.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.71 MB)
    pygame-2.0.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl(14.35 MB)
    pygame-2.0.3-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.84 MB)
    pygame-2.0.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.37 MB)
    pygame-2.0.3-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl(16.67 MB)
    pygame-2.0.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.43 MB)
    pygame-2.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl(11.82 MB)
    pygame-2.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.71 MB)
    pygame-2.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl(14.35 MB)
    pygame-2.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.84 MB)
    pygame-2.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.37 MB)
    pygame-2.0.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl(16.67 MB)
    pygame-2.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.43 MB)
    pygame-2.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl(11.81 MB)
    pygame-2.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.70 MB)
    pygame-2.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl(14.37 MB)
    pygame-2.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.86 MB)
    pygame-2.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.39 MB)
    pygame-2.0.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl(16.69 MB)
    pygame-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.45 MB)
    pygame-2.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl(11.81 MB)
    pygame-2.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.70 MB)
    pygame-2.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl(14.37 MB)
    pygame-2.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.86 MB)
    pygame-2.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.39 MB)
    pygame-2.0.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl(16.69 MB)
    pygame-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.45 MB)
    pygame-2.0.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl(14.37 MB)
    pygame-2.0.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.86 MB)
    pygame-2.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.39 MB)
    pygame-2.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl(16.69 MB)
    pygame-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.45 MB)
    pygame-2.0.3-pp27-pypy_73-manylinux_2_12_i686.manylinux2010_i686.whl(14.27 MB)
    pygame-2.0.3-pp27-pypy_73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.77 MB)
    pygame-2.0.3-pp27-pypy_73-manylinux_2_17_i686.manylinux2014_i686.whl(16.54 MB)
    pygame-2.0.3-pp27-pypy_73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.32 MB)
    pygame-2.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl(14.27 MB)
    pygame-2.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.78 MB)
    pygame-2.0.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl(16.54 MB)
    pygame-2.0.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.33 MB)

  • 2.0.3.dev6(Oct 31, 2021)

    Another quick dev pre-release. python3 -m pip install pygame==2.0.3.dev6

    What’s Changed

    Mainly this release fixes some issues with MacOS M1 based arm64 computers,
    but also some issues with manylinux binary wheels for linux users.

    We would appreciate feedback from M1 users, and linux users particularly.

    python3 -m pip install pygame==2.0.3.dev6
    
    # run an example game
    python3 -m pygame.examples.aliens
    # run the full test suite
    python3 -m pygame.tests
    

    Please report your successes or failures with the release here: https://github.com/pygame/pygame/pull/2807

    Or chat to us in the #contributing discord, or send an email.


    • Redirect pygame github image to pygame webpage by @MightyJosip in https://github.com/pygame/pygame/pull/2789
    • fix syntax error for slightly older versions of libSDL by @ckuttruff in https://github.com/pygame/pygame/pull/2798
    • Build arm64 mac wheels on CI by @ankith26 in https://github.com/pygame/pygame/pull/2782
    • Remove travis again by @illume in https://github.com/pygame/pygame/pull/2803
    • add opus, brotli and bzip2 to dep builds by @ankith26 in https://github.com/pygame/pygame/pull/2804
    • Fix selection of manylinux to build by @illume in https://github.com/pygame/pygame/pull/2805

    Thanks all

    Thanks to all for reporting issues, doing reviews and helping out in other ways.
    Especially issue reporters, wiki editors, discord mods/folk, redditors, patreons, and such like.


    • merged PRs since we started the pygame 2.0.3.dev6 on the 24th of Oct 2021.
    • 16 Commits since 2.0.3.dev4 release
    • previous pygame release notes

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.3.dev6-pp27-pypy_73-win32.whl(4.20 MB)
    pygame-2.0.3.dev6-pp36-pypy36_pp73-win32.whl(4.21 MB)
    pygame-2.0.3.dev6-cp27-cp27m-win32.whl(4.21 MB)
    pygame-2.0.3.dev6-cp35-cp35m-win32.whl(4.24 MB)
    pygame-2.0.3.dev6-cp36-cp36m-win32.whl(4.25 MB)
    pygame-2.0.3.dev6-cp37-cp37m-win32.whl(4.25 MB)
    pygame-2.0.3.dev6-cp38-cp38-win32.whl(4.26 MB)
    pygame-2.0.3.dev6-cp39-cp39-win32.whl(4.26 MB)
    pygame-2.0.3.dev6-cp310-cp310-win32.whl(4.26 MB)
    pygame-2.0.3.dev6-cp27-cp27m-win_amd64.whl(4.48 MB)
    pygame-2.0.3.dev6-cp35-cp35m-win_amd64.whl(4.56 MB)
    pygame-2.0.3.dev6-cp36-cp36m-win_amd64.whl(4.57 MB)
    pygame-2.0.3.dev6-cp37-cp37m-win_amd64.whl(4.57 MB)
    pygame-2.0.3.dev6-cp38-cp38-win_amd64.whl(4.58 MB)
    pygame-2.0.3.dev6-cp39-cp39-win_amd64.whl(4.58 MB)
    pygame-2.0.3.dev6-cp310-cp310-win_amd64.whl(4.58 MB)
    pygame-2.0.3.dev6-cp27-cp27m-macosx_10_9_x86_64.whl(4.82 MB)
    pygame-2.0.3.dev6-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl(11.79 MB)
    pygame-2.0.3.dev6-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.68 MB)
    pygame-2.0.3.dev6-cp35-cp35m-macosx_10_9_x86_64.whl(4.82 MB)
    pygame-2.0.3.dev6-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl(11.81 MB)
    pygame-2.0.3.dev6-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.70 MB)
    pygame-2.0.3.dev6-cp36-cp36m-macosx_10_9_x86_64.whl(5.01 MB)
    pygame-2.0.3.dev6-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl(11.82 MB)
    pygame-2.0.3.dev6-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.71 MB)
    pygame-2.0.3.dev6-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl(14.35 MB)
    pygame-2.0.3.dev6-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.84 MB)
    pygame-2.0.3.dev6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.37 MB)
    pygame-2.0.3.dev6-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl(16.67 MB)
    pygame-2.0.3.dev6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.44 MB)
    pygame-2.0.3.dev6-cp37-cp37m-macosx_10_9_x86_64.whl(4.99 MB)
    pygame-2.0.3.dev6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl(11.82 MB)
    pygame-2.0.3.dev6-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.71 MB)
    pygame-2.0.3.dev6-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl(14.35 MB)
    pygame-2.0.3.dev6-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.84 MB)
    pygame-2.0.3.dev6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.37 MB)
    pygame-2.0.3.dev6-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl(16.67 MB)
    pygame-2.0.3.dev6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.43 MB)
    pygame-2.0.3.dev6-cp38-cp38-macosx_10_9_x86_64.whl(5.00 MB)
    pygame-2.0.3.dev6-cp38-cp38-macosx_11_0_arm64.whl(4.52 MB)
    pygame-2.0.3.dev6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl(11.81 MB)
    pygame-2.0.3.dev6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.70 MB)
    pygame-2.0.3.dev6-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl(14.37 MB)
    pygame-2.0.3.dev6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.86 MB)
    pygame-2.0.3.dev6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.39 MB)
    pygame-2.0.3.dev6-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl(16.69 MB)
    pygame-2.0.3.dev6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.45 MB)
    pygame-2.0.3.dev6-cp39-cp39-macosx_10_9_x86_64.whl(5.01 MB)
    pygame-2.0.3.dev6-cp39-cp39-macosx_11_0_arm64.whl(4.53 MB)
    pygame-2.0.3.dev6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl(11.81 MB)
    pygame-2.0.3.dev6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl(12.70 MB)
    pygame-2.0.3.dev6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl(14.37 MB)
    pygame-2.0.3.dev6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.86 MB)
    pygame-2.0.3.dev6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.39 MB)
    pygame-2.0.3.dev6-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl(16.69 MB)
    pygame-2.0.3.dev6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.45 MB)
    pygame-2.0.3.dev6-cp310-cp310-macosx_10_9_x86_64.whl(5.01 MB)
    pygame-2.0.3.dev6-cp310-cp310-macosx_11_0_arm64.whl(4.53 MB)
    pygame-2.0.3.dev6-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl(14.37 MB)
    pygame-2.0.3.dev6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.86 MB)
    pygame-2.0.3.dev6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(16.39 MB)
    pygame-2.0.3.dev6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl(16.69 MB)
    pygame-2.0.3.dev6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.45 MB)
    pygame-2.0.3.dev6-pp27-pypy_73-macosx_10_9_x86_64.whl(4.69 MB)
    pygame-2.0.3.dev6-pp27-pypy_73-manylinux_2_12_i686.manylinux2010_i686.whl(14.27 MB)
    pygame-2.0.3.dev6-pp27-pypy_73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.77 MB)
    pygame-2.0.3.dev6-pp27-pypy_73-manylinux_2_17_i686.manylinux2014_i686.whl(16.54 MB)
    pygame-2.0.3.dev6-pp27-pypy_73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.32 MB)
    pygame-2.0.3.dev6-pp36-pypy36_pp73-macosx_10_9_x86_64.whl(4.69 MB)
    pygame-2.0.3.dev6-pp37-pypy37_pp73-macosx_10_9_x86_64.whl(4.83 MB)
    pygame-2.0.3.dev6-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl(14.27 MB)
    pygame-2.0.3.dev6-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(16.78 MB)
    pygame-2.0.3.dev6-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl(16.54 MB)
    pygame-2.0.3.dev6-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(17.33 MB)
    pygame-2.0.3.dev6.tar.gz(5.53 MB)

  • 2.0.3.dev4(Oct 24, 2021)

  • 2.0.3.dev2(Oct 16, 2021)

  • 2.0.2(Oct 10, 2021)

  • 2.0.2.dev4(Oct 9, 2021)

    Pygame 2.0.2.dev4

    python3 -m pip install pygame==2.0.2.dev4 --pre

    pygame

    The previous pre-release 2.0.2.dev2 was aimed to test whether our new build machinery for releasing pygame worked. And it worked great, except on Mac. Now mac wheels are hopefully fixed in this pre-release. In fact, we now have Mac wheels that support down to MacOS 10.9, unlike previous 2.x releases, that only supported 10.13 and above.

    Apart from that there’s a bunch of other nice stuff in here too. Including python 3.10 support, a new Windows camera module, support for rumble controllers/joysticks, support for building on windows with MSYS2 (gcc and friends for windows), and significant documentation improvements and even a new SVG/vector version of the logo (as you can see above).

    Hopefully this will be the last pre release. Next up we can do the real 2.0.2 release…
    Unless people find some serious issues when testing this one?

    Docs + Type Hints + Examples

    @rethanon fixed up some type hint and documentation errors in #2697 and #2717.

    @rethanon fixed up the playmus examples, and added a good note to the mixer.music docs in #2745. @rethanon continued tidying the music docs in #2751.

    @vnmabus enhanced the type hints by moving to use Sequence in places. (#2682)

    New contributor @Mega-JC made some beautiful upscaled logos for us in #2704. I mean, just check out the README now 😍.

    @bydariogamer spruced up the docs in #2715.

    @Grimmys made it much easier to generate the documentation locally in #2714. No need to install build tools now!

    @Grimmys got us up to date with our docs build tooling. We can now generate the docs on Sphinx 4.0. (#2666)

    @Starbuck5 wrote a docs README for new contributors in #2667.

    Bug Fixes

    @ankith26 fixed a regression where a few modules would return True instead of None on init() and quit(). (#2719)

    @MightyJosip fixed a bug where rotating a Surface with no width or no height (or both) would cause a segmentation fault. (#2725)

    @njbradley, @Starbuck5, and @illume collaborated to get mp3 support for mixer.music on Linux. (#2712)

    @zaphodikus Fixed broken unicode len checking in examples/textinput.py https://github.com/pygame/pygame/pull/2567

    Devops

    @bydariogamer simplified the implementations of surfarray and sndarray in #2708.

    @ankith26 improved our Github Actions system significantly, also allowing us to generate Python 3.10 wheels on Mac and Windows. (#2605)

    @illume fixed an issue with downloading the jpeg library on windows. (#2743)

    @illume added python 3.10 builds to appveyor in #2757.

    Many thanks to @illume, assisted by @ankith26, for fixing the mac dependency situation that was the primary release blocker for this release. (#2742). Mac builds should support MP3 music now!

    New contributor @Pycryptor10 made sure the metadata in setup.cfg reflects that we support Python 3.10. (#2753)

    Many thanks to new contributor @dciabrin, who added support for MSYS2 windows builds. (#2592)

    Thanks to @Starbuck5, @ankith26, and @illume for coordinating the 2.0.2.dev4 pre-release.

    Additions

    @Starbuck5 added a namehint argument to music.queue. (#2750)

    @Starbuck5 added built in webcam support for Windows to the pygame.camera module. (#2630)

    @zoldalma999 added rumble support to the joystick and controller modules. https://github.com/pygame/pygame/pull/2741


    • merged PRs since we started the pygame 2.0.2 series on the 24th of December 2020, but 2.0.0.dev2 was released 2021-07-22.
    • 124 Commits since 2.0.2.dev2 pre release
    • previous pygame release notes

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.2.dev4-pp27-pypy_73-win32.whl(4.67 MB)
    pygame-2.0.2.dev4-pp36-pypy36_pp73-win32.whl(4.68 MB)
    pygame-2.0.2.dev4-cp27-cp27m-win32.whl(4.67 MB)
    pygame-2.0.2.dev4-cp35-cp35m-win32.whl(4.71 MB)
    pygame-2.0.2.dev4-cp36-cp36m-win32.whl(4.72 MB)
    pygame-2.0.2.dev4-cp37-cp37m-win32.whl(4.72 MB)
    pygame-2.0.2.dev4-cp38-cp38-win32.whl(4.73 MB)
    pygame-2.0.2.dev4-cp39-cp39-win32.whl(4.73 MB)
    pygame-2.0.2.dev4-cp27-cp27m-win_amd64.whl(4.95 MB)
    pygame-2.0.2.dev4-cp35-cp35m-win_amd64.whl(5.03 MB)
    pygame-2.0.2.dev4-cp36-cp36m-win_amd64.whl(5.04 MB)
    pygame-2.0.2.dev4-cp37-cp37m-win_amd64.whl(5.04 MB)
    pygame-2.0.2.dev4-cp38-cp38-win_amd64.whl(5.05 MB)
    pygame-2.0.2.dev4-cp39-cp39-win_amd64.whl(5.05 MB)
    pygame-2.0.2.dev4-cp310-cp310-win_amd64.whl(5.05 MB)
    pygame-2.0.2.dev4-cp310-cp310-win32.whl(4.73 MB)
    pygame-2.0.2.dev4.tar.gz(6.01 MB)
    pygame-2.0.2.dev4-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl(12.26 MB)
    pygame-2.0.2.dev4-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl(13.15 MB)
    pygame-2.0.2.dev4-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl(12.27 MB)
    pygame-2.0.2.dev4-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(13.16 MB)
    pygame-2.0.2.dev4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl(12.29 MB)
    pygame-2.0.2.dev4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(13.18 MB)
    pygame-2.0.2.dev4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(13.63 MB)
    pygame-2.0.2.dev4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl(12.29 MB)
    pygame-2.0.2.dev4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(13.18 MB)
    pygame-2.0.2.dev4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(13.62 MB)
    pygame-2.0.2.dev4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl(12.28 MB)
    pygame-2.0.2.dev4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl(13.17 MB)
    pygame-2.0.2.dev4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(13.64 MB)
    pygame-2.0.2.dev4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl(12.28 MB)
    pygame-2.0.2.dev4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl(13.17 MB)
    pygame-2.0.2.dev4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(13.64 MB)
    pygame-2.0.2.dev4-pp27-pypy_73-manylinux_2_12_i686.manylinux2010_i686.whl(13.65 MB)
    pygame-2.0.2.dev4-pp27-pypy_73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(14.84 MB)
    pygame-2.0.2.dev4-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl(13.66 MB)
    pygame-2.0.2.dev4-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(14.85 MB)
    pygame-2.0.2.dev4-cp36-cp36m-macosx_10_9_x86_64.whl(5.32 MB)
    pygame-2.0.2.dev4-cp37-cp37m-macosx_10_9_x86_64.whl(5.30 MB)
    pygame-2.0.2.dev4-cp38-cp38-macosx_10_9_x86_64.whl(5.31 MB)
    pygame-2.0.2.dev4-cp39-cp39-macosx_10_9_x86_64.whl(5.32 MB)
    pygame-2.0.2.dev4-cp310-cp310-macosx_10_9_x86_64.whl(5.32 MB)
    pygame-2.0.2.dev4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl(5.14 MB)
    pygame-2.0.2.dev4-cp27-cp27m-macosx_10_9_x86_64.whl(5.13 MB)
    pygame-2.0.2.dev4-cp35-cp35m-macosx_10_9_x86_64.whl(5.14 MB)
    pygame-2.0.2.dev4-pp27-pypy_73-macosx_10_9_x86_64.whl(5.00 MB)
    pygame-2.0.2.dev4-pp36-pypy36_pp73-macosx_10_9_x86_64.whl(5.01 MB)

  • 2.0.2.dev2(Aug 22, 2021)

    Pygame 2.0.2.dev2 — Drumroll release

    💐💐😉😊💐💐
    ☕ Cheer Up! 🍵
    🍂 ✨ )) ✨ 🍂
    🍂┃ (( * ┣┓ 🍂 we have a python3 -m pip install pygame==2.0.2.dev2
    🍂┃*💗 ┣┛ 🍂
    🍂┗━━┛ 🍂
    🎂 For YOU 🍰
    💐💐😌😊💐💐

    Hello internet strangers. We’re back with a new release, packed with tons of mundane bug fixes and unexciting improvements! It’s been a while since the last release, but in that time pygame development has been moving ahead. This release, 36 contributors (25 new ones!) contributed over 75 pull requests. Since 2.0.1, over 200 files were edited, with more than 16,000 lines added, and more than 7,000 lines deleted.

    This is a development pre-release, so we can test out new release machinery. Probably we will do a couple more dev pre-releases, but we hope to have a full 2.0.2 release soon. There’s a bunch of PRs still open that we want to help resolve and merge in before that.

                        So grab a beverage, 
                        and doom scroll our release notes,
                        we prepared just for you,
                       (&& those other interweb weirdos)
    

    Bug Fixes 🐛

    Artisanal source code like ours has the best intentions, but there’s nothing like computers to bamboozle our best efforts.
    It used to be actual bugs climbing inside the pipe organs programmed to play and the looms programmed to weave, but these days that excuse doesn’t really work. Our bad.

    Bugs in this 1910 Jacquard loom would be actual bugs

    New contributor @mhollands fixed an issue where arcs wouldn’t fully draw in #2480
    arc drawing image

    (See more the video at https://www.youtube.com/watch?v=1PBd3VJrfDw if you’re interested)

    @ankith26 fixed

    • the init systems to prevent bugs from init-quit-init (#2428)
    • an error handling bug in pixelarray in #2444
    • the pygame default font would break when packaged with PyInstaller (#2604)

    @Starbuck5 fixed:

    • 20 second load times for SysFont on Mac, and also gave Windows SysFont some love (#2594, #2640).
    • A bug where freetype would think coordinates of -1 represented an error was fixed in #2576.
    • A rare segfault in mixer.pre_init() on Mac, in #2494
    • Where window size couldn’t be reduced after leaving SCALED mode on Windows (#2587)
    • Exiting fullscreen would put your window at (0, 0) in #2460
    • A failure in display.set_gamma() in #2524
    • The pygame.scrap module building properly on Mac and Windows (#2499, #2495).

    @MightyJosip fixed duplicate entries in display.list_modes() in #2470

    @robertpfeiffer fixed

    • IME placement in SCALED mode in #2451
    • A rare bug where Color.hsva would return invalid values in #2467

    Sysfont fixes

    One module in particular has come a long way in this release — sysfont. Thanks to @Starbuck5

    As well as working better on windows and mac… Before, if you requested «Cambria,» pygame would silently give out Cambria bold.
    before

    Now, Cambria is Cambria
    after

    (Of course you can still request bold from SysFont and it will hook you up, at least for Cambria)

    New Features ✨

    @dr0id added

    • vector projection to the Vector2 and Vector3 classes in #2510
    • a “touch” attribute to all mouse events in #2514

    projected = v3.project(v3) This is useful for collision detection in finding the components in a certain direction (e.g. in direction of the wall). For a more detailed explanation see Wikipedia <https://en.wikipedia.org/wiki/Vector_projection>_.

    The .touch attribute is for events that were generated by a touch input device, and not a real mouse. You might want to ignore such events, if your application already handles finger events.

    @robertpfeiffer added an exclude argument to pygame.event.get(), allowing inverse filtering, in #2512, with a test in #2546.

    @MyreMylar worked on

    • changing mixer.set_reserved() to return the number of channels actually reserved in #2490
    • adding an actual implementation to the force parameter of mixer.find_channel() in #2491 Before it simply wasn’t implemented, only documented.

    @Starbuck5 added

    • a namehint argument to mixer.music.load() for easier loading of music from file-like objects. (#2497)
    • Vector2 support to the transform, display, and Mask modules, as well as keyword argument support to the transform and Mask modules (#2536, #2557, #2581)

    Internal / Portability

    New contributor @Muxelmann fixed the path to homebrew in #2636, fixing some pygame issues on M1 Mac!

    New contributor @odidev and @illume added aarch64 wheel build support, along with a docker file, and github actions tests for it in #2610 and #2675

    New contributor @fniephaus made a compatibility fix for GraalPython in #2580

    @MyreMylar updated the sse2neon header to make it build alpha blitter on arm in #2425

    @ankith26 and @illume added github actions, disabled travis builds except arm64 in #2507 and #2600. This was crucial to keep pygame development functional after the shutdown of travis-ci.org.

    @Pierre-Sassoulas used their pylint expertise to keep pygame’s code base clean and functional in #2509, #2579, and #2634.

    @Starbuck5 added Python 3.10 support in #2586, updated functions to return bools rather than ints in #2534, and moved to SDL 2.0.16 on Windows in #2670.

    @illume moved to SDL 2.0.16 on Linux, as well as many other dependency updates, in #2676

    Docs

                                           _________________________
                                         =(__    ___       __     __)=
                                           |                       |
                                           |                       |
                                           | python -m pygame.docs |
                                           |                       |
                                           | A large number        |
                                           | documentation fixes   |
                                           | were made in this     |
                                           | release.              |
                                           |                       |
                                           |__    ___   __    _____|
                                         =(_________________________)=
    

    @llindstrom, @Pierre-Sassoulas, and @Starbuck5 corrected incorrection information in: #2485, #2582, #2654. @robertpfeiffer added to the TEXTINPUT documentation in #2456.

    New contributors @SplatRT, @bambalamm, @deek80, @NKID00, @MaukWM, and @shawnbyday all cleaned up the documentation with grammar and typo fixes, in: #2431, #2437, #2519, #2555, #2583, #2644. @Starbuck5 contributed to this worthy goal in #2590

    New contributor @Grimmys and @Starbuck5 worked on the documentation build system, upgrading it from Sphinx 1 to Sphinx 3, hiding the obsolete Overlay and cdrom modules from the top bar, and adding the --fullgeneration flag to setup.py docs. #2513, #2511, #2617, #2624.

    New contributor @Taffer added a page to showcase all of pygame’s named colors, in #2559. When it is live, it will be at https://www.pygame.org/docs/ref/color_list.html.

    New contributor @kaiec noticed that SDL_Image, pygame’s image loading backend, supports more than we had documented, so updated the documentation accordingly, in #2619. (We support WebP and SVG, who knew?) New contributor @duthades continued this by adding tests for the new image formats in #2656.

    Finally, new contributor @ayushbisht2001 added a nice logo to the README in #2441, sprucing it up nicely.

    Type Hints

    Typehints got some neat updates in this release as well, so that you can code with pygame in your favourite IDE and you get that sweet auto-correct/autocomplete and type-checking to catch bugs even before they are reported!

    New contributor @jakebailey made tons of good typehint fixes in #2537, the most important ones being, correctly exporting submodules in a way that typehints are recognized for the submodules, and generic types used in annotations being fixed to include the missing type params, among other fixes.

    New contributors:

    • @w-v fix set_mods() type hint in #2457
    • @nathanielconroy less strict type checking for AbstractGroup.add in #2646
    • @sandipanpanda Fixed wrong kwargs types in sprite.pyi in #2652
    • @vnmabus Fix syntax for typing AbstractGroup attributes in #2663
    • @bydariogamer Update Vector3 overloaded constructor signature in #2674
    • @shingo-kagami Fixed mouse.get_pressed() type hint in #2685

    @MyreMylar Add str and RGBA tuple types to freetype/font type hints in #2462, and Correct blits typehint sequence arg to cover blit inputs in #2482

    @ankith26 and @zoldalma999 overhauled many incorrect uses of Optional in #2678

    Examples

    New contributor @jonozw added a needed pg.quit() for IDLE compatibility in the stars example (#2560). Many other examples needed this too, so another expeditious new contributor (@AnudeepGunukula) swept through and made sure it was on every example in #2643.

    @MightyJosip fixed a crash in the mask example in #2606.

    New contributor @mljli improved the aliens example in #2608, new contributor @njbradley improved the font_viewer example in #2655 (it’s cool check it out), and @Starbuck5 overhauled the chimp example in #2651.

    Experimental super secret _sdl2 things

    TODO: this section is supposed to be top secret! No one is supposed to know about these new APIs yet, except people wanting to give feedback and live dangerously. So I guess bikers, and skydivers can know about this stuff?

    @galexandreg added blend_mode, color tuples, origin=None, to _sdl2.Image in #2426 and draw_blend_mode to Renderers in #2520

    @Starbuck5 added prototype docs to the _sdl2.video system in #2533. They will be live at https://www.pygame.org/docs/ref/sdl2_video.html.

    @zoldalma999 did lots of work getting the SDL2 controller system ported in #2423.

    Thank Yous

    • To all the returning contributors who helped improve pygame this release:
      Josip Komljenović (@MightyJosip) | Dan Lawrence (@MyreMylar) | Pierre Sassoulas (@Pierre-Sassoulas) | Charlie Hayden (@Starbuck5) | Ankith (@ankith26) | @droid | @galexandreg | Rene Dudfield (@illume) | Lenard Lindstrom (@llindstrom) | @robertpfeiffer | @zoldalma999
    • And to all the new contributors who put themselves out there by volunteering fixes:
      @MaukWM | Chris Herborth (@Taffer) | NKID00 (NK) (@NKID00) | Fabio Niephaus (@fniephaus) | Ayush Bisht (@ayushbisht2001) | Nathaniel Conroy (@nathanielconroy) | Kai Eckert (@kaiec) | Anudeep Gunukula (@AnudeepGunukula) | @bydariogamer | Don Patterson (@deek80) | @njbradley | @odidev | @SplatRT | Max Zangs (@Muxelmann) | mljli (@mljli) | shawnbyday (@shawnbyday) | Bambalam (@bambalamm) | Grimmys (@Grimmys) | Carlos Ramos Carreño (@vnmabus) | Jake Bailey (@jakebailey) | Sanket Duthade (@duthades) | Matt Hollands (@mhollands) | @w-v | @sandipanpanda | jonozw (@jonozw) | Shingo Kagami (@shingo-kagami)
    • As all releases, this one too would not have been possible without support from the community, from people submitting issues, to people making PRs for all kinds of improvements, from typo fixes, to fixing complex segfaults in C code, every contribution matters a lot!
    • patreon.com/pygame sponsors: Christopher Cacho, Daniel Lawrence, Tommi Sinivuo, Leif Theden, zoldalma, rosa, Nova Dasterin, and Bob Johnson. With their help half of the first patreon goal of covering the monthly hosting costs has been covered and a number of pygame tutorials have been made.
    • To the people making all the software pygame depends on, from SDL&python, to sphinx&git and many others.
    • The people supporting pygame financially by buying the pre-release of a pygame book. It’s a book by a long time pygame contributor where all funds go towards pygame development.
    • People helping out the community in general, from making youtube tutorials, to answering questions on various forums of discussions, to helping with packaging pygame!

    • merged PRs since we started the pygame 2.0.2 series on the 24th of December 2020
    • 305 Commits since 2.0.1 stable release
    • previous pygame release notes

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.2.dev2-pp27-pypy_73-win32.whl(4.66 MB)
    pygame-2.0.2.dev2-pp36-pypy36_pp73-win32.whl(4.67 MB)
    pygame-2.0.2.dev2-cp27-cp27m-win32.whl(4.67 MB)
    pygame-2.0.2.dev2-cp35-cp35m-win32.whl(4.69 MB)
    pygame-2.0.2.dev2-cp36-cp36m-win32.whl(4.70 MB)
    pygame-2.0.2.dev2-cp37-cp37m-win32.whl(4.70 MB)
    pygame-2.0.2.dev2-cp38-cp38-win32.whl(4.71 MB)
    pygame-2.0.2.dev2-cp39-cp39-win32.whl(4.71 MB)
    pygame-2.0.2.dev2-cp27-cp27m-win_amd64.whl(4.94 MB)
    pygame-2.0.2.dev2-cp35-cp35m-win_amd64.whl(5.01 MB)
    pygame-2.0.2.dev2-cp36-cp36m-win_amd64.whl(5.02 MB)
    pygame-2.0.2.dev2-cp37-cp37m-win_amd64.whl(5.02 MB)
    pygame-2.0.2.dev2-cp38-cp38-win_amd64.whl(5.03 MB)
    pygame-2.0.2.dev2-cp39-cp39-win_amd64.whl(5.03 MB)
    pygame-2.0.2.dev2.tar.gz(5.46 MB)
    pygame-2.0.2.dev2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(12.93 MB)
    pygame-2.0.2.dev2-pp27-pypy_73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(12.92 MB)
    pygame-2.0.2.dev2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl(11.96 MB)
    pygame-2.0.2.dev2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl(11.50 MB)
    pygame-2.0.2.dev2-pp27-pypy_73-manylinux_2_12_i686.manylinux2010_i686.whl(11.95 MB)
    pygame-2.0.2.dev2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl(10.79 MB)
    pygame-2.0.2.dev2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(11.80 MB)
    pygame-2.0.2.dev2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl(11.50 MB)
    pygame-2.0.2.dev2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl(10.79 MB)
    pygame-2.0.2.dev2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(11.80 MB)
    pygame-2.0.2.dev2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(11.51 MB)
    pygame-2.0.2.dev2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl(10.79 MB)
    pygame-2.0.2.dev2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(11.51 MB)
    pygame-2.0.2.dev2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(11.78 MB)
    pygame-2.0.2.dev2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl(10.79 MB)
    pygame-2.0.2.dev2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(11.79 MB)
    pygame-2.0.2.dev2-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl(10.78 MB)
    pygame-2.0.2.dev2-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl(11.49 MB)
    pygame-2.0.2.dev2-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl(10.76 MB)
    pygame-2.0.2.dev2-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl(11.48 MB)
    pygame-2.0.2.dev2-pp37-pypy37_pp73-macosx_10_7_x86_64.whl(2.54 MB)
    pygame-2.0.2.dev2-pp27-pypy_73-macosx_10_7_x86_64.whl(2.54 MB)
    pygame-2.0.2.dev2-cp39-cp39-macosx_10_14_x86_64.whl(2.68 MB)
    pygame-2.0.2.dev2-cp37-cp37m-macosx_10_14_x86_64.whl(2.66 MB)
    pygame-2.0.2.dev2-cp35-cp35m-macosx_10_14_x86_64.whl(2.65 MB)
    pygame-2.0.2.dev2-cp27-cp27m-macosx_10_14_x86_64.whl(2.64 MB)
    pygame-2.0.2.dev2-cp38-cp38-macosx_10_14_x86_64.whl(2.67 MB)
    pygame-2.0.2.dev2-cp36-cp36m-macosx_10_14_x86_64.whl(2.67 MB)

  • 2.0.1(Dec 24, 2020)

    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
    🌼🌸 python3 -m pip install pygame==2.0.1
    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻

    The Age Of Aquarius,
    the northern Winter Solstice, 
    and the southern Summer Solstice bring us...
    a new pygame to play with :)
    

    This is a bug fix release, with a bunch of features and optimizations thrown in for good measure. Thank you to the people reporting issues related to pygame 1 compatibility. Some of them will take a bit longer to discuss, work through, and find solutions. We say goodbye to Travis the CI that served us well. We said goodbye to the pygame discord that had grown too big, only for a few more to have sprouted up in its place. We said hello to the patreon.com/pygame and we took a breather for a little bit.

    Enough bla bla bla… what’s new?

    Backwards compatibility fixes

    Firstly, a few backwards compatibility fixes have been made.

    Dan Lawrence @MyreMylar worked some more on the alpha blitter so it’s more compatible.

    • Change opaque surface test to use SDL_ISPIXELFORMAT_ALPHA() macro #2269

    René Dudfield (@illume) worked on making some old audio driver and video driver names that had been renamed work in backwards compatible env vars, SDL_VIDEODRIVER=windib, SDL_AUDIODRIVER=pulse or dsound #2292

    Major event refactor

    Ankith (@ankith26) did a major event refactor in #2357 #2404 #2416 and #2398 This not only cleaned up the event processing code, but fixed a bunch of issues an introduced some new features making event processing more comfy along the way.

    • #1236 unicode keydown field does not appear occasionally
    • #1238 posting keydown events fills the all fields.
    • #1524 Unicode property not returned on KEYUP event
    • #1550 time.set_timer accept event object
    • #2146 Segfault in pygame.event.post() fixed
    • #2214 WINDOWEVENT API upgrade
    • #2319 event.get(type) does not return a list of all events posted
    • #2347 pygame.time.set_timer() accepts loops param
    • #2378 unicode keydown field working when mashing 4 keys at once

    Here’s a graph to treat your eyes, on an event benchmark where getting lots of events has been sped up a lot. As you can see, its a 7 times speed up. There are also less peaks in there, due to less thread locking on the event queue and using batching API calls.

    Figure_1

    New contributors

    Thanks to @bwright8 for adding a unit test for image.load_basic() #2307 and also for adding some Surface.convert tests in #2368.

    @kristofszentes made a unit test for image.load_extended() in #2324

    Paul m. p. P. (@pmp-p) fixed typo in windib driver handler condition https://github.com/pygame/pygame/pull/2342

    The Dog Lulu (@Iamsoto) updated the TYPE_HEAD macro to use a newer API #2363

    @aminouhammou added a unit test for display.gl_get_attribute() #2375

    Tom Fryers (@TomFryers) Capitalised «Python» in the import message. #2389

    Pierre Sassoulas (@Pierre-Sassoulas) has been working on some code quality fixes using the pylint tool (and apart from these merged PRs working on setting up other code quality tools and a pre-commit checker).

    • Add parentheses to print so it works in py2 and py3 #2284
    • Merge some comparisons in lists for simplicity #2290
    • Change range(len(x)) to enumerate(x) when applicable #2291
    • Temporarily skip test_sound_args on windows and Appveyor #2371

    Color.update() and Rect.update()

    @zoldalma999 (who recently joined the pygame team on github after contributing several high quality patches to pygame) worked on a proposal by David Lönnhager (@dlon) to add Color.update and Rect.update #2277

    Vectors already have an update() method. Now Color, and Rect do too :)

    
    >>> c = pygame.Color(0, 0, 0)
    >>> c2 = pygame.Color(1, 2, 3, 4)
    >>> c
    (0, 0, 0, 255)
    >>> c.update(c2)
    >>> c
    (1, 2, 3, 4)
    
    >>> rect = pygame.Rect(0, 0, 1, 1)
    >>> rect.update(1, 2, 3, 4)
    >>> rect
    <rect(1, 2, 3, 4)>
    >>> rect = pygame.Rect(0, 0, 1, 1)
    >>> rect2 = pygame.Rect(1, 2, 3, 4)
    >>> rect.update(rect2)
    >>> rect
    <rect(1, 2, 3, 4)>
    

    @zoldalma999 also worked on:

    • the «edit on github» link in the docs was fixed to now point to main branch. #2318
    • document that sprite groups are ordered in python 3.6 and above #2336
    • Remove unittest skip from freetype_Font_render_to_mono #2351
    • Fix render_to returning unpositioned rect #2410

    René Dudfield (@illume) was hacking on some things like these:

    • Fixing some sysfont test failures #2354
    • docs, tests and types for pathlib support #2387
    • fix for a gl crash #2394
    • SDL 2.0.14, and manylinux improvements (pulseaudio and other deps) #2395
    • Fix and skip test failures #2415

    SDL 2.0.14

    libsdl is a library pygame is built on. It had a new release after almost 9 months of development. The 2.0.14 release notes detail things a little bit. More than 9 months worth of effort is a bit much to explain.

    There’s been a number of bugs fixed we reported in the pygame 2 series. One of which was pygame.display.update() updating the whole screen on windows. So, now ‘dirty rect drawing’ is faster again on windows. From the list you’ll notice a lot of work went into joystick and game controller improvements. Including support for more than 4 xbox controllers at once on windows. But linux, android, mac, and even freebsd got joystick improvements. On linux the Kernel Mode Setting (KMSDRM) video driver was improved a lot. For retro computing fans, the OS2 port got a lot of love. Lots of portability things were improved, like fixing compilation for M1 CPUs, improving the build system. Raspberry Pi support has been improved, as have most video drivers for other platforms.

    Xbox One port

    Victor Lopez started on an Xbox one port, and has had some success.

    I can confirm Xbox One is able to run the aliens sample with joystick support, audio and sprites, it needs, however, heavy testing.

    These are the relevant repositories:

    • https://github.com/greentwip/cpython
    • https://github.com/greentwip/pygame

    pathlib support for image, sound, and font loading.

    pathlib is an object oriented way of doing path handling in python 3 (there’s also a backport to python2). Before pygame didn’t handle these objects in resource loading functions for image and sound loading. Now it does pathlib!

            path = pathlib.Path('.') / "data" / "house_lo.wav"
            sound1 = mixer.Sound(path)
    

    Thanks to @ankith26 in #2366 and René Dudfield (@illume) in #2387 .

    Cursor object API

    @Starbuck5 worked on a new Cursor object in https://github.com/pygame/pygame/pull/2331

    Now you can add system cursors, and color cursors out of surfaces along with the other ones you could draw with ascii art.

    box = pygame.cursors.Cursor((10,10), pygame.Surface((20,20)))
    pg.mouse.set_cursor(box)
    
    pg.mouse.set_cursor(pg.SYSTEM_CURSOR_NO)
    pg.mouse.get_cursor()
    >>> <Cursor(type: system, constant: SYSTEM_CURSOR_NO)>
    

    @Starbuck5

    • added a link to patreon on github in #2362
    • Improved the README.rst by clarifying, restructuring and improving links. #2396
    • Cleaned up ‘import pygame._view’ in packager_imports by removing it. #2384
    • Docs build fixes + home for the Korean tutorial #2420

    @Starbuck5 added a deprecation warning for mouse.set_system_cursor() #2397 after a long discussion and research with a number of us on if we should have deprecation warnings anyway?.

    pygame.draw.rect fixes.

    Another project @Starbuck5 worked on was fixing some draw.rect issues in PR #2406 found by @gummbum and @dr0id

    This script by @dr0id made it much easier to spot the problems.
    2359-ex3

    @galexandreg worked on text_input documentation improvements on by default, needed for pygame.TEXTINPUT https://github.com/pygame/pygame/pull/2333

    @robertpfeiffer made a few fixes to issues with android support. Added K_AC_BACK key constant, fixed data_file pruning and «STRIPPED» install #2311

    Ankith @ankith26 merged these ones in (whilst also looking at some difficult event posting issues, and cleaning up some image loading code).

    • Unittests for event module #2283
    • Delete obsolete test/util files #2303
    • Documented pygame.image load_basic, load_extended, save_extended. image.c code cleanups. https://github.com/pygame/pygame/pull/2270
    • Pathlib support for most pygame functions #2366
    • Drop PyLong_FromUnicode, removed in python 3.10 #2385
    • little music doc fix #2414

    @mcpalmer1980 Added experimental relative mouse motion support to video.Window in #2392 They have also been using the experimental _sdl2 features quite a lot and coming up with some good improvements and discussions on that (including a new package!).

    Dan Lawrence ( @MyreMylar ) was on a coding rampage and made a number of improvements:

    • mixer.music.get_busy() return False when the music is paused #2295
    • Small improvement to the get_locks() test #2281
    • Interactive test for touch.get_finger() #2279
    • Removed the link to the closed Discord server from GitHub #2296 😢
    • pygame.midi pass the output buffersize down to portmidi #2272
    • interactive test for set_gamma_ramp() #2278
    • Rejiged the alpha blitter path logic to cover issue on mac #2345
    • Account for mixer.init()/pre_init() returning more channels than asked #2372
    • Fix typo in image.frombuffer() type hint #2383

    Many many special Thanks go to

    • everyone writing up issues, answering questions, sharing your work, or moderating discussions on different forums.
    • reviewers including: @illume, @siggisv, @ankith26, @robertpfeiffer, @MyreMylar, @Starbuck5, @pmp-p, and others.
    • patreon.com/pygame sponsors: Christopher Cacho, Daniel Lawrence, Tommi Sinivuo, Leif Theden, zoldalma, and Bob Johnson. With their help half of the first patreon goal of covering the monthly hosting costs has been covered and a number of pygame tutorials have been made.
    • the people supporting pygame financially by buying the pre-release of a pygame book. It’s a book by a long time pygame contributor where all funds go towards pygame development.

    See ya!


    • merged PRs since we started the pygame 2.0.0.
    • 189 Commits since 2.0.0 stable release

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.1-pp27-pypy_73-win32.whl(4.56 MB)
    pygame-2.0.1-pp36-pypy36_pp73-win32.whl(4.57 MB)
    pygame-2.0.1-cp27-cp27m-win32.whl(4.57 MB)
    pygame-2.0.1-cp35-cp35m-win32.whl(4.60 MB)
    pygame-2.0.1-cp36-cp36m-win32.whl(4.61 MB)
    pygame-2.0.1-cp37-cp37m-win32.whl(4.61 MB)
    pygame-2.0.1-cp38-cp38-win32.whl(4.62 MB)
    pygame-2.0.1-cp39-cp39-win32.whl(4.62 MB)
    pygame-2.0.1-cp27-cp27m-win_amd64.whl(4.84 MB)
    pygame-2.0.1-cp35-cp35m-win_amd64.whl(4.91 MB)
    pygame-2.0.1-cp36-cp36m-win_amd64.whl(4.92 MB)
    pygame-2.0.1-cp37-cp37m-win_amd64.whl(4.92 MB)
    pygame-2.0.1-cp38-cp38-win_amd64.whl(4.93 MB)
    pygame-2.0.1-cp39-cp39-win_amd64.whl(4.93 MB)
    pygame-2.0.1-pp27-pypy_73-manylinux2010_x86_64.whl(12.59 MB)
    pygame-2.0.1-cp38-cp38-manylinux1_x86_64.whl(11.22 MB)
    pygame-2.0.1-cp37-cp37m-manylinux1_x86_64.whl(11.22 MB)
    pygame-2.0.1-pp36-pypy36_pp73-manylinux2010_x86_64.whl(12.60 MB)
    pygame-2.0.1-pp37-pypy37_pp73-manylinux2010_i686.whl(11.66 MB)
    pygame-2.0.1-pp37-pypy37_pp73-manylinux2010_x86_64.whl(12.60 MB)
    pygame-2.0.1-cp35-cp35m-manylinux1_x86_64.whl(11.21 MB)
    pygame-2.0.1-cp39-cp39-manylinux1_i686.whl(10.51 MB)
    pygame-2.0.1-cp36-cp36m-manylinux1_i686.whl(10.51 MB)
    pygame-2.0.1-cp27-cp27mu-manylinux1_x86_64.whl(11.19 MB)
    pygame-2.0.1-pp27-pypy_73-manylinux2010_i686.whl(11.66 MB)
    pygame-2.0.1-cp39-cp39-manylinux1_x86_64.whl(11.21 MB)
    pygame-2.0.1-cp27-cp27mu-manylinux1_i686.whl(10.48 MB)
    pygame-2.0.1-cp36-cp36m-manylinux1_x86_64.whl(11.22 MB)
    pygame-2.0.1-cp37-cp37m-manylinux1_i686.whl(10.51 MB)
    pygame-2.0.1-cp35-cp35m-manylinux1_i686.whl(10.50 MB)
    pygame-2.0.1-cp38-cp38-manylinux1_i686.whl(10.51 MB)
    pygame-2.0.1-pp36-pypy36_pp73-manylinux2010_i686.whl(11.66 MB)
    pygame-2.0.1-cp27-cp27m-macosx_10_9_intel.whl(6.56 MB)
    pygame-2.0.1-cp35-cp35m-macosx_10_9_intel.whl(6.57 MB)
    pygame-2.0.1-cp36-cp36m-macosx_10_9_intel.whl(6.60 MB)
    pygame-2.0.1-cp37-cp37m-macosx_10_9_intel.whl(6.59 MB)
    pygame-2.0.1-cp38-cp38-macosx_10_9_intel.whl(6.60 MB)
    pygame-2.0.1-cp39-cp39-macosx_10_9_intel.whl(6.61 MB)
    pygame-2.0.1-pp36-pypy36_pp73-macosx_10_9_intel.whl(6.44 MB)
    pygame-2.0.1-pp37-pypy37_pp73-macosx_10_9_intel.whl(6.44 MB)
    pygame-2.0.1.tar.gz(5.28 MB)

  • 2.0.0(Oct 28, 2020)

    The 28th of October 2020 is the pygame 2.0 release date, because pygame turns 20 years of age.


     ,--.
    |  oo|
    |  ~~| o  o  o  o  o  o  o  o  o  o  o  o  o
    |//|
           python3 -m pip install pygame==2.0.0
    

    What’s the best feature of pygame 2? Maybe it’s «backwards compatibility«. For many, many apps pygame 2 is backwards compatible. Have an pygame app from the year 2000? It will probably work. We still have some known issues and open backwards compatibility issues(see below), but a lot of things work just as they did before. Yes, we still have python 2 support.

    How does one summarize the 3306 changes since we started the pygame 2 series in July of 2018 based on patches going back to 2012 and even earlier?

    • Support for Metal, Direct 3d, Vulkan, OpenGL 3.0+ in various profiles (core, compatibility, debug, robust, etc), OpenGL ES, and other modern hardware accelerated video APIs across many platforms.
    • SSE2/Neon assembly image drawing. Much faster drawing routines, image loading, and alpha blending.
    • Type Hints, for code completion (and to help you make the squiggly lines disappear) in editors and IDEs.
    • Code cleanup, using lots of code robustness tools like static analyzers, and automated CI/CD. We’ve been able to help dozens of people new to community projects contribute. We have lots of work to go on code quality, but we’re currently the highest rated Python and highest rate C large project on LGTM.
    • Many, many bug fixes including in our pygame.draw routines, pygame.math(for vectors), and pygame.mask for pixel perfect collision detection.
    • better support for PyPy (the fast JIT based implementation of python). See our milestone Are we pypy yet? No. for our progress on making PyPy the best python for games.
    • libsdl version 2 support. Technically pygame 2.0 still works with SDL 1, but we recommend SDL2 which is vastly improved over SDL1 for most use cases. Probably we will remove SDL 1 support starting pygame 2.1.
    • Touch support (multitouch, gestures, etc)
    • Audio input support (make games with your microphone!).
    • Message alert boxes (Press OK, or Cancel).
    • Better keyboard support. Proper unicode input and IME support.
    • Much improved game controller support.
    • Better image and audio format support. Including: webp, 32bit wav files, and much more reliable mp3 support.
    • Multiple display support, and multiple window support (multi window support is still experimental, more will come in pygame 2.1).
    • Android support through python for android (fork of pygame subset for android). Better documentation, and better support will come in future releases.
    • to make distributing your apps easier, a built in «pyinstaller hook»and compatibility with cxfreeze.
    • binary «wheels» on many platforms and versions of python from the old python 2.7 — to the latest python 3.9 (and with pypy!).
    • lots of quality of life improvements like Surface.fill('black') instead of Surface.fill(pygame.Color(0, 0, 0)). Also keywords are supported for many more function arguments. You can draw rounded corners on rects.
    • plenty of new examples, like python3 -m pygame.examples.font_viewer, and python3 -m pygame.examples.music_drop_fade. Additionally the example source code has been cleaned up a lot to follow a more current python style.
    • Hundreds of documentation improvements, include a new Korean tutorial.
    • a special SCALED mode which takes low pixel games and automatically translates them to a larger window. Imagine your 320×200 resolution game of glorious pixel art… on modern screens that would be a very tiny windows. Now with SCALED it shows up big on a Full HD screen, or even a 4K/8K screen and the translation of mouse coordinates and up-scaling of pixels is done for you (hardware accelerated of course).

    That was a summary of some of the goodies in pygame 2. We will be releasing more articles and tutorials on new features as time goes on. You can also look at the previous release notes for more info (see end of this post).

    thank you 🎉

    Probably one of the better realizations thinking about pygame on its 20th birthday is that there is a much larger group of people who have contributed to crafting pygame in recent years. Some have moved onto other things like jobs, family or writing cookbooks in the Canadian wilderness. Much respect for volunteering time to a community project like pygame.

    Firstly thanks to the pygame team members who contributed to the pygame 2 series, new and old…

    David Lönnhager (@dlon) | René Dudfield (@illume) | Charles (@charlesej) | Dan Lawrence (@MyreMylar) | Ankith (@ankith26) | Niels Thykier (@nthykier) | Lenard Lindstrom (@llindstrom) | Sigurður Sveinn Halldórsson (@siggisv) | @robertpfeiffer | Josip Komljenović (@MightyJosip) | Travis Chang (@Reminisque) | xFly_Dragon (@husano896) | Adam Andrews (@adamandrews1) | (@galexandreg) | Thiago Jobson (@thiagojobson) | (@mcpalmer1980) | @charlesoblack | Daniel Pope (@lordmauve) | Thomas Kluyver (@takluyver) | @e1000 | Andy Nguyen (@anguye13) | @Starbuck5 | Ian Mallett (@imallett)

    Equally important thank you go out to all the other contributors, some of which contributed to a community project for the first time.

    Pedro de la Peña @pedrodelapena | @lkito | @khuang0312 | @tsadama | @Bottersnike | @alphaCTzo7G | Amos Bastian (@amosbastian) | Andrey Lopukhov (@andreyx86) | Augusto Noronha (@augusto2112) | Bernardo Sulzbach (@bernardosulzbach) | (@Bottersnike) | Cai Q.T. (@CAIQT) | (@Cerealdragon) | (@ChrisWeissNike) | (@cmtrapp02) | Daniel Molina (@daniel-molina) | David Caughell (@DavidCaughell) | (@dr0id) | burmer (@dtschirmer) | (@IchMageBaume) | (@LambdaGoblin) | François Magimel (@Linkid) | (@LiquidFenrir) | Mark Hurley (@markph0204) | Marius Gedminas (@mgedmin) | (@metulburr) | Michael Farrell (@micolous) | Dominik George (@Natureshadow) | Nik (@nikolas) | Nunu-Willump (@Nunu-Willump) | (@pleboulanger) | Rebecca Chen (@rchen152) | (@robertpfeiffer) | Sett (@sw00) | @seenemikk | Nguyễn Gia Phong (@McSinyx)| Sebastian Henz | @BastiHz | Alice Lia Stapleton (@slimelia)

    raphacosta27 (@raphacosta27) | Bill (@AdditionalPylons) | Gabriel Moreira (@gabsmoreira) | zoldalma999 (@zoldalma999) | amipy (@amipy) | DGMcKenney (@DGMcKenney) | Grigoris Tsopouridis ((@gtsopus)) | Ilia Gogotchuri (@Gogotchuri) | Jim Quach (@jiquach) | Aaron Li (@AaronLi) | Clark Seanor (@cruxicheiros) | K Duggan (@kduggan15) | Michał Górny (@mgorny) | Clark Seanor (@cruxicheiros) | jtoloff (@jtoloff) | 41aaronb (@41aaronb) | Prasanna Venkatesh (@hanzohasashi33) | zoldalma999 (@zoldalma999) | Nihal Mittal (@codescientist703) | leopoldwe (@leopoldwe) | Scott Noyes (@snoyes)

    Vicente González Ruiz (@vicente-gonzalez-ruiz)| Douglas (@douglas-cpp) | wuzh07 (@wuzh07) | Gerardo Antonio Hagad (@ginohagad) | Evan Kanter (@evank28) | Inada Naoki (@methane) | Jani Tiainen (@jtiaicomparison) | Christian Clauss (@cclauss) | Gosha Zacharov (@Gosha) | Steven Chua (@Graphcalibur) | K Duggan (@kduggan15) | PeanutbutterWarrior (@PeanutbutterWarrior) | Nachiket Naganure (@NachiketUN) | Pierre Haou (@pierrehaou) | Daniel Gillet (@dangillet) | Stefano Rivera (@stefanor) | Andre Miras (@AndreMiras) | glennmackintosh (@glennmackintosh) | Vilhelm Prytz (@vilhelmprytz) | DotMars (@DotMars) | Gabriel Duque (@zuh0) | Mark Hurley (@markph0204) | Henrik Petersson (@hnrkcode) | Grigoriy (@flaambe) | Matt Sheppard (@mampersat) | s0lst1ce (@s0lst1ce) | Norman Packard (@nhpackard) | peanutbutterandcrackers (@peanutbutterandcrackers)

    A special thanks to all the people who help out others. From making videos, to answering questions, to writing guides (and even whole books). MyreMylar, MichaelCPalmer, jtiai, claudeb, DaFluffyPotato, Rabbid76, The Big Kahuna, sloth, Kingsley, … and lots of other people. Thanks to the mods on forums, chat rooms and Q&A sites. Special thanks to Zireael07 for cheering on pull requests that people make 🎉 Thanks to people adding support and integration to libraries and tools like pgzero(lordmauve and co), Mu Editor (Nicholas and team), and pymunk (Victor Blomqvist). Very many people have contributed by reporting issues. This is fantastic help for people 👏 👏 👏 Without these issue reports and help in testing bugs and new features many parts simply wouldn’t work. Thanks to the SDL folk, to the fluidsynth crew, to numpy devs (Matti and co), python for android, pypy project, and the python community at large. Thanks to the folks running game jams like ludumdare(Mike), pyweek(lordmauve), and alakajam. Thanks to renpytom for pygame subset for android and pygame_sdl2, thanks to Marcus von Appen for pysdl2. Thanks to people sharing your work with others on the pygame website, or on places like the pygame reddit, discord, or youtube. Thanks to the kind folk who work on packaging pygame from Debian, Ubuntu, Arch, FreeBSD, and piwheels (@bennuttall). Thanks for the people teaching and learning with pygame all over the world. Last but not least… a very special thanks to everyone we’ve missed that should be listed here.

    Really. Thank you (you). Thanks.

    Known issues

    We have an up to date list of issues marked with the Compatibility Python 2 label. These are compatibility issues where something worked in pygame 1, but doesn’t work in pygame 2.

    At the time of writing this included:

    • the pygame.cdrom package not being there (mainly because it isn’t in SDL2 anymore).
    • pygame.scrap is only working with text, not images (needs some porting and testing done).
    • pygame.event.post is having issues with some event types.
    • pygame.display.set_palette is not implemented (not in SDL2).
    • display.set_mode() ignores depth value. It just returns one it thinks is appropriate.

    We’ve already investigated many of these issues, and even have some work in progress on some of them. If you’re particularly interested in one of them please let us know. Also if you have any issues with your existing apps, we are very interested in finding out.

    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
    🌼🌸 python3 -m pip install pygame==2.0.0
    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻

    Happy pygame 20th birthday all! 🎉 🍰 🥳


    • 937 merged PRs since we started the pygame 2 series in Jul 19, 2018.
    • 3306 Commits since 1.9.4 stable release
    • previous pygame release notes

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.0-pp27-pypy_73-win32.whl(4.52 MB)
    pygame-2.0.0-pp36-pypy36_pp73-win32.whl(4.53 MB)
    pygame-2.0.0-cp27-cp27m-win32.whl(4.53 MB)
    pygame-2.0.0-cp35-cp35m-win32.whl(4.56 MB)
    pygame-2.0.0.tar.gz(5.26 MB)
    pygame-2.0.0-cp36-cp36m-win32.whl(4.57 MB)
    pygame-2.0.0-cp37-cp37m-win32.whl(4.57 MB)
    pygame-2.0.0-cp38-cp38-win32.whl(4.58 MB)
    pygame-2.0.0-cp39-cp39-win32.whl(4.58 MB)
    pygame-2.0.0-cp27-cp27m-win_amd64.whl(4.80 MB)
    pygame-2.0.0-cp35-cp35m-win_amd64.whl(4.87 MB)
    pygame-2.0.0-cp36-cp36m-win_amd64.whl(4.88 MB)
    pygame-2.0.0-cp37-cp37m-win_amd64.whl(4.88 MB)
    pygame-2.0.0-cp38-cp38-win_amd64.whl(4.89 MB)
    pygame-2.0.0-cp39-cp39-win_amd64.whl(4.89 MB)
    pygame-2.0.0-cp27-cp27m-macosx_10_9_intel.whl(6.55 MB)
    pygame-2.0.0-cp35-cp35m-macosx_10_9_intel.whl(6.55 MB)
    pygame-2.0.0-cp36-cp36m-macosx_10_9_intel.whl(6.59 MB)
    pygame-2.0.0-cp37-cp37m-macosx_10_9_intel.whl(6.57 MB)
    pygame-2.0.0-cp38-cp38-macosx_10_9_intel.whl(6.58 MB)
    pygame-2.0.0-cp39-cp39-macosx_10_9_intel.whl(6.59 MB)
    pygame-2.0.0-pp36-pypy36_pp73-macosx_10_9_intel.whl(6.42 MB)
    pygame-2.0.0-pp37-pypy37_pp73-macosx_10_9_intel.whl(6.42 MB)
    pygame-2.0.0-cp27-cp27mu-manylinux1_i686.whl(10.24 MB)
    pygame-2.0.0-cp27-cp27mu-manylinux1_x86_64.whl(10.95 MB)
    pygame-2.0.0-cp35-cp35m-manylinux1_i686.whl(10.25 MB)
    pygame-2.0.0-cp35-cp35m-manylinux1_x86_64.whl(10.97 MB)
    pygame-2.0.0-cp36-cp36m-manylinux1_i686.whl(10.26 MB)
    pygame-2.0.0-cp36-cp36m-manylinux1_x86_64.whl(10.98 MB)
    pygame-2.0.0-cp37-cp37m-manylinux1_i686.whl(10.26 MB)
    pygame-2.0.0-cp37-cp37m-manylinux1_x86_64.whl(10.98 MB)
    pygame-2.0.0-cp38-cp38-manylinux1_i686.whl(10.26 MB)
    pygame-2.0.0-cp38-cp38-manylinux1_x86_64.whl(10.97 MB)
    pygame-2.0.0-cp39-cp39-manylinux1_i686.whl(10.26 MB)
    pygame-2.0.0-cp39-cp39-manylinux1_x86_64.whl(10.97 MB)
    pygame-2.0.0-pp27-pypy_73-manylinux2010_i686.whl(11.38 MB)
    pygame-2.0.0-pp27-pypy_73-manylinux2010_x86_64.whl(12.31 MB)
    pygame-2.0.0-pp36-pypy36_pp73-manylinux2010_i686.whl(11.38 MB)
    pygame-2.0.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl(12.32 MB)
    pygame-2.0.0-pp37-pypy37_pp73-manylinux2010_i686.whl(11.38 MB)
    pygame-2.0.0-pp37-pypy37_pp73-manylinux2010_x86_64.whl(12.32 MB)

  • 2.0.0.dev24(Oct 27, 2020)

  • 2.0.0.dev22(Oct 23, 2020)

  • 2.0.0.dev20(Oct 22, 2020)

  • 2.0.0.dev18(Oct 21, 2020)

  • 2.0.0.dev16(Oct 20, 2020)

    pip install pygame==2.0.0.dev16

    The 28th of October 2020 will be the pygame 2.0 release date, because pygame turns 20 years of age. Save the date (maybe we’ll do something)!

    We reached two important milestones with this pre-release. Firstly the old game ‘solarwolf’ is working fine with no known issues on pygame 2. The second stone we passed by on the road to PyPy goodness is that we are releasing binary wheels for PyPy on mac, windows, and linux. PyPy is a different implementation of python that is highly compatible and can be extremely fast.

    Here’s a little youtube video of solarwolf on PyPy and SDL2…
    solarwolf on SDL2 and pypy

    If you watched the video to the end, you’ll note there’s a crash. We still have some way to go before everything in pygame is working with PyPy. «solarwolf» using cpython and pygame 2 is running deliciously and glitch free.

    Critical backwards compatibility fixes for pygame 2

    First up, some ‘critical’ improvements that have been made to pygame. ‘critical’ labeled issues are ones are backwards incompatible issues stopping a pygame 2 release.

    Dan Lawrence @MyreMylar

    • Making RLE flags & RLE behaviour more consistent between pygame 1 and pygame 2, so that a lot more types of surfaces draw correctly and that «solarwolf» works really nicely.

    Ankith @ankith26

    • Fix repeated VIDEOEXPOSE events, so apps do not get dozens of extra nonsensical VIDEOEXPOSE events on Windows.

    René Dudfield @illume

    • Added portmidi package for conan MacOS so that pygame.midi works on MacOS again.
    • Set icon on macos like the other platforms with SDL2, so the default icon is there again for MacOS.

    bugs, worms, shiny-shiny, and such

    Dan Lawrence @MyreMylar

    • Missing mouse_doc.h file
    • Fix for missed braces in get_flags()
    • Adding a premul_alpha helper method to Color class
    • One of the math.c functions still used deprecated UTF functions

    René Dudfield @illume

    • Test that pygame with SDL2 blit gives same results as SDL1 blit
    • CI speedups
    • Skip a lot of failing tests on pypy, build pypy wheels on mac+travis
    • pypy and manylinux2010 because PyPy needs manylinux2010, an old PR from @takluyver was resurrected and changed a bit so we can use manylinux2010.

    @robertpfeiffer

    • Add Setup.Android.SDL2.in, and default icons to STRIPPED build is an improvement for better Android support.

    @Starbuck5

    • Fix docs build failure on Sphinx 3, so we can use the current version of the Sphinx documentation tool.

    Josip Komljenović @MightyJosip

    • Type hints for Vector swizzles & sprite groups
    • draw.line fix with thick lines. More of the line was clipped off on screen borders than expected is a fix for an issue @siggisv found with line drawing.

    Sigurður Sveinn Halldórsson @siggisv

    • Document expected behavior of draw.aaline()

    Ankith @ankith26

    • Doc improvements for WINDOWEVENT, MOUSEWHEEL, event and misc

    This time 4 ‘critical’ backwards compatibility issues were fixed since the last release.


    • 6 open ‘critical’ issues (backwards compatibility issues reported by people), and 35 closed (last release: 7 open, 32 closed).
    • merged PRs
    • 2090 Commits since 1.9.6 stable release
    • 80 Commits since 2.0.0.dev14 pre release

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.0.dev16-pp27-pypy_73-win32.whl(4.62 MB)
    pygame-2.0.0.dev16-pp36-pypy36_pp73-win32.whl(4.63 MB)
    pygame-2.0.0.dev16-cp27-cp27m-win32.whl(4.63 MB)
    pygame-2.0.0.dev16.tar.gz(5.34 MB)
    pygame-2.0.0.dev16-cp35-cp35m-win32.whl(4.66 MB)
    pygame-2.0.0.dev16-cp36-cp36m-win32.whl(4.67 MB)
    pygame-2.0.0.dev16-cp37-cp37m-win32.whl(4.67 MB)
    pygame-2.0.0.dev16-cp38-cp38-win32.whl(4.68 MB)
    pygame-2.0.0.dev16-cp39-cp39-win32.whl(4.68 MB)
    pygame-2.0.0.dev16-cp27-cp27m-win_amd64.whl(4.90 MB)
    pygame-2.0.0.dev16-cp35-cp35m-win_amd64.whl(4.97 MB)
    pygame-2.0.0.dev16-cp36-cp36m-win_amd64.whl(4.98 MB)
    pygame-2.0.0.dev16-cp37-cp37m-win_amd64.whl(4.98 MB)
    pygame-2.0.0.dev16-cp38-cp38-win_amd64.whl(5.00 MB)
    pygame-2.0.0.dev16-cp39-cp39-win_amd64.whl(5.00 MB)
    pygame-2.0.0.dev16-cp37-cp37m-manylinux2010_i686.whl(11.62 MB)
    pygame-2.0.0.dev16-pp37-pypy37_pp73-manylinux2010_x86_64.whl(12.43 MB)
    pygame-2.0.0.dev16-pp36-pypy36_pp73-manylinux2010_x86_64.whl(12.43 MB)
    pygame-2.0.0.dev16-cp38-cp38-manylinux2010_x86_64.whl(12.51 MB)
    pygame-2.0.0.dev16-cp38-cp38-manylinux2010_i686.whl(11.65 MB)
    pygame-2.0.0.dev16-pp27-pypy_73-manylinux2010_x86_64.whl(12.42 MB)
    pygame-2.0.0.dev16-cp35-cp35m-manylinux2010_i686.whl(11.61 MB)
    pygame-2.0.0.dev16-pp27-pypy_73-manylinux2010_i686.whl(11.54 MB)
    pygame-2.0.0.dev16-cp39-cp39-manylinux2010_i686.whl(11.65 MB)
    pygame-2.0.0.dev16-cp27-cp27mu-manylinux2010_x86_64.whl(12.46 MB)
    pygame-2.0.0.dev16-cp27-cp27mu-manylinux2010_i686.whl(11.59 MB)
    pygame-2.0.0.dev16-cp36-cp36m-manylinux2010_x86_64.whl(12.49 MB)
    pygame-2.0.0.dev16-cp37-cp37m-manylinux2010_x86_64.whl(12.49 MB)
    pygame-2.0.0.dev16-cp36-cp36m-manylinux2010_i686.whl(11.63 MB)
    pygame-2.0.0.dev16-pp37-pypy37_pp73-manylinux2010_i686.whl(11.55 MB)
    pygame-2.0.0.dev16-cp39-cp39-manylinux2010_x86_64.whl(12.51 MB)
    pygame-2.0.0.dev16-pp36-pypy36_pp73-manylinux2010_i686.whl(11.55 MB)
    pygame-2.0.0.dev16-cp35-cp35m-manylinux2010_x86_64.whl(12.48 MB)
    pygame-2.0.0.dev16-pp36-pypy36_pp73-macosx_10_9_intel.whl(6.53 MB)
    pygame-2.0.0.dev16-cp27-cp27m-macosx_10_9_intel.whl(6.65 MB)
    pygame-2.0.0.dev16-cp35-cp35m-macosx_10_9_intel.whl(6.65 MB)
    pygame-2.0.0.dev16-cp36-cp36m-macosx_10_9_intel.whl(6.69 MB)
    pygame-2.0.0.dev16-cp37-cp37m-macosx_10_9_intel.whl(6.67 MB)
    pygame-2.0.0.dev16-cp38-cp38-macosx_10_9_intel.whl(6.68 MB)
    pygame-2.0.0.dev16-cp39-cp39-macosx_10_9_intel.whl(6.69 MB)
    pygame-2.0.0.dev16-pp37-pypy37_pp73-macosx_10_9_intel.whl(6.53 MB)

  • 2.0.0.dev14(Oct 12, 2020)

    pip install pygame==2.0.0.dev14
    dreamlines
    Players, only love you when they’re playing

    With a very tiny little bit of discussion it was sort of decided that the 28th of October 2020 will be the pygame 2.0 release date, because pygame turns 20.

    Critical backwards compatibility fixes for pygame 2

    First up, some ‘critical’ improvements that have been made to pygame. ‘critical’ labeled issues are ones are backwards incompatible issues stopping a pygame 2 release.

    Thanks to Dan Lawrence @MyreMylar for Adding a num_buttons parameter to mouse.get_pressed(). This was a backwards compatibility issue, because it used to return 3 elements. Now it returns 3 elements again by default and you can request 5 if you want. Another critical issue fixed by MyreMylar was a problem with key events being reordered on windows.

    But wait… there’s more. Another backwards compatibility fix by MyreMylar is the «Backwards compatibility for get_flags() in SDL2» PR, which has stopped some games handling full screen mode properly.

    Sigurður Sveinn Halldórsson @siggisv fixed a problem with how pygame.draw.aaline didn’t look as before.

    • Fix draw.aaline not always solid, and other problems

    Now the anti aliased lines look (and smell) awesome.
    13

    bugs, worms, shiny-shiny, and such

    Ankith @ankith26

    • Some mouse cursors documentation improvements
    • Fix pyinstaller issues with pygame.font.Font
    • Document some undocumented pygame.image functions
    • Update pygame.version.rev docs
    • Adding windowevent constants
    • Fixes pygame.display failing unit tests on raspberry pi
    • Remove ancient file kept for python v2.4 compatibility

    Josip Komljenović @MightyJosip

    • Improved the speed of pygame.draw.line()
    • A few more type hint fixes

    Dan Lawrence @MyreMylar

    • GitHub issue templates: New style Part 2
    • doc header file regen
    • Changed display.set_palette() test to test correct function

    Adam Andrews @adamandrews1

    • Code cleanup Removed PG_ENABLE_NEWBUF

    @Starbuck5

    • Python3 needs bool instead of nonzero
    • timeout option added to event.wait() which is useful if you only want your app to wake up when something happens and also at least every 1 second or so.

    René Dudfield @illume

    • Python 3.9 binary wheels (which is a new release of python).
    • Test sdist on CI
    • Disable timing based tests on mac CI, because issues

    Nguyễn Gia Phong @McSinyx

    • Fix [email protected]_system_cursor type hints
    • py.typed for mypy, fix pygame._sdl2 importing touch module type hints
    • Clean up README and source distribution

    Special thanks to the new contributors

    @seenemikk

    • unit test for surface.get_masks()

    Sebastian Henz @BastiHz

    • Fix typo in freetype.rst

    Alice Lia Stapleton @slimelia

    • unit test: display.get_wm_info()

    This time 4 ‘critical’ backwards compatibility issues were fixed since the last release.


    • 7 open ‘critical’ issues (backwards compatibility issues reported by people), and 32 closed (last release: 9 open, 28 closed).
    • merged PRs
    • 2008 Commits since 1.9.6 stable release
    • 118 Commits since 2.0.0.dev12 pre release

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.0.dev14-cp27-cp27m-win32.whl(4.63 MB)
    pygame-2.0.0.dev14-cp35-cp35m-win32.whl(4.66 MB)
    pygame-2.0.0.dev14-cp36-cp36m-win32.whl(4.67 MB)
    pygame-2.0.0.dev14-cp37-cp37m-win32.whl(4.67 MB)
    pygame-2.0.0.dev14-cp38-cp38-win32.whl(4.68 MB)
    pygame-2.0.0.dev14-cp27-cp27m-win_amd64.whl(4.90 MB)
    pygame-2.0.0.dev14-cp35-cp35m-win_amd64.whl(4.97 MB)
    pygame-2.0.0.dev14-cp36-cp36m-win_amd64.whl(4.98 MB)
    pygame-2.0.0.dev14-cp37-cp37m-win_amd64.whl(4.98 MB)
    pygame-2.0.0.dev14-cp38-cp38-win_amd64.whl(4.99 MB)
    pygame-2.0.0.dev14-cp39-cp39-win32.whl(4.68 MB)
    pygame-2.0.0.dev14-cp36-cp36m-manylinux1_x86_64.whl(11.07 MB)
    pygame-2.0.0.dev14-cp35-cp35m-manylinux1_i686.whl(10.37 MB)
    pygame-2.0.0.dev14-cp36-cp36m-manylinux1_i686.whl(10.38 MB)
    pygame-2.0.0.dev14-cp37-cp37m-manylinux1_i686.whl(10.39 MB)
    pygame-2.0.0.dev14-cp39-cp39-manylinux1_x86_64.whl(11.07 MB)
    pygame-2.0.0.dev14-cp35-cp35m-manylinux1_x86_64.whl(11.06 MB)
    pygame-2.0.0.dev14-cp39-cp39-manylinux1_i686.whl(10.38 MB)
    pygame-2.0.0.dev14-cp38-cp38-manylinux1_x86_64.whl(11.07 MB)
    pygame-2.0.0.dev14-cp37-cp37m-manylinux1_x86_64.whl(11.07 MB)
    pygame-2.0.0.dev14-cp27-cp27mu-manylinux1_i686.whl(10.36 MB)
    pygame-2.0.0.dev14-cp27-cp27mu-manylinux1_x86_64.whl(11.04 MB)
    pygame-2.0.0.dev14-cp38-cp38-manylinux1_i686.whl(10.39 MB)
    pygame-2.0.0.dev14-cp39-cp39-win_amd64.whl(4.99 MB)
    pygame-2.0.0.dev14.tar.gz(5.29 MB)
    pygame-2.0.0.dev14-cp27-cp27m-macosx_10_9_intel.whl(6.59 MB)
    pygame-2.0.0.dev14-cp35-cp35m-macosx_10_9_intel.whl(6.59 MB)
    pygame-2.0.0.dev14-cp36-cp36m-macosx_10_9_intel.whl(6.63 MB)
    pygame-2.0.0.dev14-cp37-cp37m-macosx_10_9_intel.whl(6.61 MB)
    pygame-2.0.0.dev14-cp38-cp38-macosx_10_9_intel.whl(6.62 MB)

  • 2.0.0.dev12(Sep 19, 2020)

     ,--.
    |  oo|
    |  ~~| o  o  o  o  o  o  o  o  o  o  o
    |//|
           pip install pygame==2.0.0.dev12
    

    Locked in or Locked out? That’s not going to stop a new pygame coming out.

    The main theme of this release is testing. With many new contributors having worked on unit tests, we can be much more confident that many more features will continue to work with our SDL2 based pygame 2 as in pygame 1 which is based on SDL1. But we also have a few new features, and plenty of bug fixes.

    Thanks to everyone for their help with this release.

    Critical backwards compatibility fixes for pygame 2

    First up, some ‘critical’ improvements that have been made to pygame. ‘critical’ labeled issues are ones are backwards incompatible issues stopping a pygame 2 release.

    We start with some joystick improvements from Daniel Pope @lordmauve. Add SDL2-specific methods to Joystick; rename event fields. Now joysticks(game pads, drum sets, dance mats) can be hot-plugged, and the game will still work properly.

    @robertpfeiffer got posting of keydown events working on SDL2. This is part of the android work that has now been merged into the main branch — but it is also a backwards compatibility fix.

    Thanks to Dan Lawrence @MyreMylar for fixing segfaults caused when interacting with display surface after quit, which is mainly useful for when writing unit tests or playing with pygame interactively.

    Sometimes writing tests for existing functionality finds real issues and bugs. First @tsadama Added unit tests for display.toggle_fullscreen and display.get_active which uncovered an issue with SDL2. Then Dan Lawrence @MyreMylar Fixed get_active() function so it works as described in docs on windows under SDL2..

    Tests

    Here we see the amount of unit tests left to write to get full coverage of every pygame method. During this release period you can see a lot of things got new tests. During the testing it uncovered a number of real issues, and some of them were even fixed.

    | pygame version | Methods left to test |
    | ——————— |———————:|
    | 2.0.0.dev12 | 81 |
    | 2.0.0.dev10 | 127 |
    | 2.0.0.dev8 | 143 |
    | 2.0.0.dev6 | 147 |
    | 1.9.6 | 156 |
    | 1.9.5 | 155 |
    | 1.9.4 | 189 |
    | 1.9.3 | 194 |
    | 1.9.2 | 194 |
    | 1.9.1 | 232 |
    | 1.9.0 | 232 |
    | 1.8.1 | 25 |
    | 1.8.0 | 0 |

    The count can be found with the following command run in the pygame code base:

    grep todo test/*.py | wc -l
    

    ‘goodfirstissue’ is a label applied to issues which would be good for someone who wants to try contributing to a Free, Open Source, or community project (like pygame). A lot of these issues were written up containing unit tests that needed to be finished off.

    Unfortunately we will probably run out of things to test in some months. We hope to prepare new types of ‘good first issues’, and educational material in other areas next. So that there is something else for people who are interested in contributing as a way to learn. Hopefully we can structure it as a learning pathway, with even some advanced topics.

    Thanks to Andy Nguyen @anguye13, who worked on a number of tests in the display, image, and surface areas.

    • Unit test for image.save_extended()
    • display.set_gamma_ramp() unit test
    • Added unit test: surface.get_shifts()
    • Added unit test: surface.get_pitch()

    Adam Andrews @adamandrews1 worked on the transform, threads parts of the code base. They have also begun work on cleaning up the buffer code, which is in C and kind of complicated. But that work is still waiting, and will likely make it into the next release.

    • threads.benchmark_workers and threads.WorkerQueue.do
    • pygame.transform.smoothscale
    • Reintroduce sizing checks for transform.smoothscale test

    Travis Chang @Reminisque

    • Added unit test for mouse.get_cursor()
    • Add unit test for surface.get_losses
    • Add mouse.set_cursor unit test

    Dan Lawrence @MyreMylar

    • Some colorkey test fixes
    • Testing mixer.music.play() start parameter & adding mp3 warning

    @khuang0312

    • Added time.get_ticks() and time test improvements
    • surface.get_colorkey() test

    @lkito

    • Surface.get_bitsize and Surface.get_bytesize tests
    • Surface.test_get_abs_parent and Surface.test_get_abs_offset tests, and fix.

    Pedro de la Peña @pedrodelapena

    • Unit tests for time.Clock.get_time()
    • Unit tests for transform.rotate()

    @galexandreg continued to

    • Add time.set_timer() unittest
    • Add some mixer Sound tests

    @tsadama

    • Added unit tests for display.toggle_fullscreen and display.get_active
    • Added Unit Test for joystick.init()

    pygame.joystick tests

    @raphacosta27 Add unit test: joystick.quit()
    Bill @AdditionalPylons Added unit test: JoystickModuleTest.test_get_count

    pygame.display tests

    Gabriel Moreira @gabsmoreira Add unit test: display.get_driver
    @zoldalma999 Adding unit test to display.iconify
    @amipy Added a unit test for display.flip()
    @DGMcKenney Adds a unit test of the display.set_icon() function.
    Grigoris Tsopouridis @gtsopus Add display.set_gamma unit test

    pygame.time tests

    Ilia Gogotchuri @Gogotchuri Implemented time.Clock.get_fps unit test
    Jim Quach @jiquach Add unit test to Clock.get_rawtime
    Aaron Li @AaronLi Added test for time.Clock.tick()
    Clark Seanor @cruxicheiros Add basic tests for time.Clock.tick_busy_loop

    pygame.threads tests

    K Duggan @kduggan15 Adds test for threadloop
    Michał Górny @mgorny Replace long-deprecated Thread.isAlive() with .is_alive()
    Clark Seanor @cruxicheiros threads.tmap() test and and fix. Unsurfaced bug #1768

    pygame.Surface tests

    @jtoloff unit test for Surface.get_locks function
    @41aaronb Added unit test for the surface.lock() function

    other tests

    Prasanna Venkatesh @hanzohasashi33 math.Vector.scale_to_length docs and add test for display.set_palette()
    @zoldalma999 Add unit test to image.get_extended
    Nihal Mittal @codescientist703 Added unit test for pygame.cursors.compile
    @leopoldwe Add key.get focused unit test

    draw

    Josip Komljenović @MightyJosip Fixed drawing of ellipse. No more holes.

    Old:
    Old
    New:
    New

    Scott Noyes @snoyes draw_py._draw_line: Use correct endpoints during swap

    Charles @charlesej Fix aatrigon/aapolygon drawing horizontal edges

    Math

    Daniel Pope @lordmauve Fix OOB access in math.Vector swizzle; add ‘0’ and ‘1’ swizzles

    These will be useful to prepare homogenous coordinates for affine transforms by matrix multiplication. Here is a matrix representing a 2x scale + (3, -1) translation:

    >>> import numpy as np
    >>> from pygame.math import Vector2
    >>> v = Vector2(0.5, 0.8)
    >>> mat = np.array([
    ...   [2, 0, 3],
    ...   [0, 2, -1],
    ... ])
    >>> mat @ v.xy1
    array([4. , 0.6])
    

    Community help

    A special thanks to all the people who help out others. From making videos, to answering questions, to writing guides. MyreMylar, MichaelCPalmer, jtiai, claudeb, DaFluffyPotato, Rabbid76, The Big Kahuna, sloth, Kingsley, … and lots of other people.

    Special thanks to @Zireael07 for cheering on pull requests that people make 🎉

    Type hints, and lint tools

    We are down to zero alerts on the LGTM linting tool on python and C/C++. We are now the largest python codebase with zero alerts on the LGTM platform (and also the largest C/C++ codebase with zero alerts). This doesn’t mean we have perfect code yet however!

    pylint

    pylint is another python code quality tool we are using. With which we currently have thousands of reported issues left. Not only can this tool find correctness problems with the code, it can also offer ideas on how to make the code more readable and ‘pythonic’. Once we have the files pylint-clean we can use pylint to take some of the load off the code reviewers.

    Dan Lawrence @MyreMylar pylint

    • version module
    • sysfont module
    • pkgdata module
    • py_draw.py module
    • midi module
    • locals.py module
    • A start on linting the sprite module

    Charles @charlesej

    • colordict.py
    • _numpysurfarray.py

    Josip Komljenović @MightyJosip

    • Rect and Color type hint fixes

    Android

    Some more of the android branch got merged into the main pygame branch.

    @robertpfeiffer

    • use rwops for font loading
    • Keep all window events in SDL2
    • setup.py cleanup: add -stripped build option to not include docs or tests

    big endian CPU architecture

    Thanks to Travis CI, we now have a builder which can test our big endian code. Even though big endian is not very common these days, it’s still helpful to support it because it helps shake out some bugs we wouldn’t normally see just testing on little endian CPU architectures.

    René Dudfield @illume s390x build robot on travis CI for big endian testing
    Michał Górny @mgorny Account for big endian support for RGB/BGR images
    Dan Lawrence @MyreMylar Remove hard coded RGB bitshifts that don’t work with SDL_MapRGB()/SDL_MapRGBA()

    image

    Sigurður Sveinn Halldórsson @siggisv image.save(namehint=») and image.get_sdl_image_version useful for when saving images to file objects and you want to tell it what format to save in (jpg, png, etc).

    >>> file = BytesIO()
    >>> pygame.image.save(surface, file, namehint='.png')
    

    Documentation and tutorials

                                           _________________________
                                         =(__    ___       __     __)=
                                           |                       |
                                           |                       |
                                           | python -m pygame.docs |
                                           |                       |
                                           | A number of small     |
                                           | documentation fixes   |
                                           | were made in this     |
                                           | release.              |
                                           |                       |
                                           |__    ___   __    _____|
                                         =(_________________________)=
    

    @Starbuck5 Fix typo in draw.rst

    Dan Lawrence @MyreMylar

    • Strengthen warning in event docs about handling the event queue
    • Key constants link added to event documentation

    @wuzh07 Fix typos in draw.rect docs
    Gerardo Antonio Hagad @ginohagad Chimp tutorial: Changed the variable «wav» to «fullname».

    Evan Kanter @evank28 Updated documentation of blit method
    Vicente González Ruiz @vicente-gonzalez-ruiz Update SpriteIntro.rst

    Douglas @douglas-cpp Fix grammar in sprite docs

    mouse

    Dan Lawrence @MyreMylar mouse.get_pressed() supports 5 buttons

    Optimizations

    @nthykier Add a SSE4.2 optimized version of image_tostring for some 32bit surfaces. The new pygame.image.tostring is up to 8x faster on x86 and x64 systems.

    Bug fixes and Cleanups

    René Dudfield @illume

    • Manylinux builds tested properly on travis CI
    • Remove unused gp2x files.
    • freetype.py unused imports, and black code formatting
    • Move .appveyor.yml config to buildconfig/appveyor.yml One less file in root.
    • setup.cfg for tooling config. Starting with tox and pylint config.
    • Name some travis ci jobs (SDL1, manylinux) including
    • Atlassian Bitbucket deleted repos. Host windows prebuilts file on pygame website
    • Disable mouse.set_system_cursor on CI
    • Fix mouse.set_system_cursor when using SDL1 to do nothing.

    Inada Naoki @methane Avoid PEP393 deprecated APIs.
    Niels Thykier @nthykier Fix test failure without SDL_AUDIODRIVER set

    Jani Tiainen @jtiai Pipenv: Fixed incorrect base class comparison

    Christian Clauss @cclauss Travis CI: Test Py38 on Ubuntu Bionic

    Dan Lawrence @MyreMylar

    • Alphabetised colourdict.py colour names
    • Defined WINDOWEVENT_MINIMIZED

    Sigurður Sveinn Halldórsson @siggisv Fix pygame.event.custom_type() off by one error.

    Josip Komljenović MightyJosip

    • Fix event.custom_event first call
    • Add PyCharm config directory to gitignore
    • transform.chop test and fix

    @Starbuck5 Internal pyinstaller hook to include dynamic libraries on Windows

    Gosha Zacharov @Gosha Allow setting several paths in PYGAME_EXTRA_BASE

    sprite

    Sigurður Sveinn Halldórsson @siggisv Fix and test sprite.collide_circle_ratio
    Josip Komljenović @MightyJosip Fix sprite drawing on Renderer

    Reviews

    Special thanks to @MyreMylar, @MightyJosip, @charlesej, @robertpfeiffer, @illume and @nthykier who have provided plenty of code reviews and testing of other peoples work.

    It’s vitally important that people volunteering (sometimes for the first time) are treated with respect and in a friendly way. It’s also important that everyone in our community should feel free to review code, so we can all learn from one another.

    Issue gardening

                ********
            ****************
          *******************
          ********************
           ********************         wWWWw               wWWWw
              \   //  ********   vVVVv (___) wWWWw         (___)  vVVVv
               \//  *******     (___)  ~Y~  (___)  vVVVv   ~Y~   (___)
                 \////           ~Y~   |    ~Y~   (___)    |/    ~Y~
                  |||//            |    |/   | /  ~Y~/   |     |/
                  |||||           \|// \|// \|/// \|//  \|// \|///
      ,,,,,,,,,,,//||||,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    

    This time 4 ‘critical’ backwards compatibility issues were fixed since the last release.


    • 9 open ‘critical’ issues (backwards compatibility issues reported by people), and 28 closed (last release: 8 open, 24 closed).
    • merged PRs
    • 1890 Commits since 1.9.6 stable release
    • 447 Commits since 2.0.0.dev10 pre release

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.0.dev12-cp27-cp27m-win32.whl(4.63 MB)
    pygame-2.0.0.dev12-cp35-cp35m-win32.whl(4.65 MB)
    pygame-2.0.0.dev12-cp36-cp36m-win32.whl(4.66 MB)
    pygame-2.0.0.dev12-cp37-cp37m-win32.whl(4.66 MB)
    pygame-2.0.0.dev12-cp38-cp38-win32.whl(4.67 MB)
    pygame-2.0.0.dev12-cp27-cp27m-win_amd64.whl(4.90 MB)
    pygame-2.0.0.dev12-cp35-cp35m-win_amd64.whl(4.97 MB)
    pygame-2.0.0.dev12-cp36-cp36m-win_amd64.whl(4.98 MB)
    pygame-2.0.0.dev12-cp37-cp37m-win_amd64.whl(4.98 MB)
    pygame-2.0.0.dev12-cp38-cp38-win_amd64.whl(4.99 MB)
    pygame-2.0.0.dev12.tar.gz(5.33 MB)
    pygame-2.0.0.dev12-cp27-cp27mu-manylinux1_i686.whl(10.35 MB)
    pygame-2.0.0.dev12-cp27-cp27mu-manylinux1_x86_64.whl(11.04 MB)
    pygame-2.0.0.dev12-cp34-cp34m-manylinux1_i686.whl(10.36 MB)
    pygame-2.0.0.dev12-cp34-cp34m-manylinux1_x86_64.whl(11.05 MB)
    pygame-2.0.0.dev12-cp35-cp35m-manylinux1_i686.whl(10.36 MB)
    pygame-2.0.0.dev12-cp35-cp35m-manylinux1_x86_64.whl(11.06 MB)
    pygame-2.0.0.dev12-cp36-cp36m-manylinux1_i686.whl(10.38 MB)
    pygame-2.0.0.dev12-cp36-cp36m-manylinux1_x86_64.whl(11.07 MB)
    pygame-2.0.0.dev12-cp37-cp37m-manylinux1_i686.whl(10.38 MB)
    pygame-2.0.0.dev12-cp37-cp37m-manylinux1_x86_64.whl(11.07 MB)
    pygame-2.0.0.dev12-cp38-cp38-manylinux1_i686.whl(10.38 MB)
    pygame-2.0.0.dev12-cp38-cp38-manylinux1_x86_64.whl(11.06 MB)
    pygame-2.0.0.dev12-cp38-cp38-macosx_10_9_intel.whl(6.61 MB)
    pygame-2.0.0.dev12-cp37-cp37m-macosx_10_9_intel.whl(6.60 MB)
    pygame-2.0.0.dev12-cp36-cp36m-macosx_10_9_intel.whl(6.62 MB)
    pygame-2.0.0.dev12-cp35-cp35m-macosx_10_9_intel.whl(6.58 MB)
    pygame-2.0.0.dev12-cp27-cp27m-macosx_10_9_intel.whl(6.58 MB)

  • 2.0.0.dev10(May 31, 2020)

     ,--.
    |  oo|
    |  ~~| o  o  o  o  o  o  o  o  o  o  o
    |//|
           pip install pygame==2.0.0.dev10
    

    We only released 2.0.0.dev8 24 days ago. However, the last few weeks have been quite productive!
    It’s as if we were all trapped inside for some reason.

    First up, the ‘critical’ window resizing bugfix thanks to @robertpfeiffer but also to @nthykier. This is another step towards a backwards compatible pygame 2 release. Another ‘critical’ bug (backwards compatibility bugs that block a pygame 2 release from happening) that got a fix is the pygame.display.update() call on windows. A patch has been merged into SDL so this should be fixed in pygame soon.

    Community help

    A special thanks to all the people who help out others. From making videos, to answering questions, to writing guides. MyreMylar, MichaelCPalmer, jtiai, claudeb, DaFluffyPotato, Rabbid76, The Big Kahuna, sloth, Kingsley, … and lots of other people.

    Type hints, and lint tools

    The last pygame pre-release(2.0.0.dev8) shipped with Type hints, and now Type hints have been refined (not like oil, but more like an expensive fermented vegan cheese). Thanks to Josip Komljenović aka @MightyJosip

    • Some type hint and examples fixes
    • Font type hints — use bool instead of int
    • Add an all variable to constants.c @MyreMylar This is useful for fixing static analysis tools like pylint and LGTM. The __all__ variable in a module is for telling python which variables are to be exported.

    Documentation and tutorials

                                           _________________________
                                         =(__    ___       __     __)=
                                           |                       |
                                           |                       |
                                           | python -m pygame.docs |
                                           |                       |
                                           | The type hints were a |
                                           | major part of the doc |
                                           | work in this release. |
                                           | Some examples got an  |
                                           | update too.           |
                                           |__    ___   __    _____|
                                         =(_________________________)=
    
    • pygame.examples.glcube has been updated to use ‘modern’ OpenGL API thanks to @MyreMylar but also to @robertpfeiffer, @illume and @imallett.
    • Fix grammar in rect docs Scott Noyes @snoyes

    an amazing assortment of ammendments

    And now have an ARM64 build for testing pygame on Travis CI (who provide it to us for free thanks!). Additionally a few bugs on the release process were fixed. Hopefully this will help us keep things working nicely on ARM platforms like the raspberry PI.

    • Add Aarch64 linux library directory to config_unix.py @MyreMylar

    Thanks to @galexandreg Surface.blit can now take very large rects for the area argument. Which is very useful in open world games that could have huge sizes of surfaces. With SDL1 supporting only smaller rects and surfaces, it used to be limited to a 16bit number.

    SCALED is a feature for scaling up low resolution game screens to large size screens — like 4k monitors or high resolution phone screens. This received some code cleanups and documentation. Thanks to @robertpfeiffer, and to @nthykier and @MyreMylar for help reviewing/testing.

    pygame using SDL1 is building and passing tests again thanks to @MyreMylar and @illume. We stopped testing with SDL1 some time ago, whilst still sort of supporting it theoretically… but then bitrot set in and a few things stopped working again. Why do we want to keep doing this? It’s useful for backwards compatibility testing. Additionally SDL1 is still better in a few tiny ways — the main one being on some ancient embedded linux platforms.

    • Updates SDL1 overlay example so it works with py3 as well as py2 @MyreMylar

    As part of a code robustness adventure of fixing… surface.blits was fixed for low memory situations where thanks to @nthykier.

    Add support for controlling screensaver state by @nthykier and continued on in https://github.com/pygame/pygame/pull/1843 allows changing the behaviour of pygame with regards to screensavers. By default pygame disables screensavers, which is good for games because you don’t want a screensaver kicking in midway through a cut-scene. But some apps don’t need this behaviour. So pygame.display.set_allow_screensaver(True)

    camera

                                   ___
                           __()}|=|   |]          pygame.camera
                           (   / |___|
                           |       /|
                          /|      / | 
    
    
    

    The pygame.camera on windows got some fixes so that it works well on SDL2 with the VideoCapture module. In the process @MyreMylar made some improvements to pygame.image.frombuffer — the function used to quickly share large buffers of data with pygame and other modules.

    Mask

                                                            ▓▓
                          ░░                  ▓▓██▒▒        ▒▒▒▒░░
                          ░░░░  ░░▒▒░░░░    ▒▒▓▓████░░      ▓▓▓▓▒▒
                          ▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▒▒▓▓▓▓████▓▓░░▒▒▓▓▓▓▒▒▒▒
                        ░░▒▒▒▒▒▒▓▓▒▒▒▒▒▒▒▒▓▓▓▓▓▓████▓▓▓▓▓▓▓▓▓▓▒▒▒▒░░
                    ▒▒░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓██████▓▓▓▓▓▓▒▒▒▒▒▒▒▒      ░░
                    ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒
                      ▒▒▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓████▓▓▓▓██▓▓▒▒▒▒░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓
                        ▒▒▒▒            ░░▒▒▓▓▓▓██▓▓▓▓▓▓          ▓▓▓▓▓▓▓▓▒▒░░
                        ▒▒▒▒▓▓            ░░▒▒▓▓██▓▓▓▓          ▒▒▓▓▓▓▓▓▒▒
                        ░░▓▓▒▒▒▒            ▒▒▒▒██▓▓▒▒        ▒▒▒▒▓▓▓▓▓▓
                          ▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒██▓▓▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒▒▓▓▒▒
                          ░░▒▒▓▓▓▓▒▒▒▒▓▓▓▓▒▒▓▓▒▒██▒▒▓▓▒▒▓▓▒▒▓▓▓▓▒▒▓▓▓▓
                            ░░▒▒▓▓▓▓▓▓▓▓▒▒▓▓▓▓▒▒██▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒
    
                            pygame.Mask -- when 1 bit is enough
    

    Mask.to_surface is a way to draw 1bit Mask objects to surfaces. 1bit surfaces are great because they can be processed up to 32x faster than Surfaces with a large color depth(since Surfaces use up to 32bits per pixel). Great for pixel perfect collision detection in particular. Mask.to_surface is already useful, but Charles (aka @charlesej) has been working on preparing to implement the area keyword as seen in Surface.blit.

    This could be interesting to those people interested in doing deformable terrain.

    • Add fuzzy color support for Mask.to_surface
    • Add/update Mask.to_surface tests
    • Add Mask.to_surface area tests
    • Fix typo in mask type stub @charlesej

    good first issue

    ‘goodfirstissue’ is a label applied to issues which would be good for someone who wants to try contributing to a Free, Open Source, or community project (like pygame).

    Dan Lawrence (aka @MyreMylar) has been hard at work preparing almost 100 «good first issue»s for people to do.

    Here are some of the first time contributors:

    • Added tests for mouse.set_pos() Steven Chua aka @Graphcalibur
    • Adds Surface.get_height test K Duggan aka @kduggan15
    • Add Surface.get_size test @PeanutbutterWarrior
    • Surface.get_locked test @PeanutbutterWarrior
    • Add joystick.get_init test @PeanutbutterWarrior
    • test for surface.get_offset Nachiket Naganure aka @NachiketUN
    • unit test for surface.get_clip() Pierre Haou aka @pierrehaou

    Daniel Gillet (aka @dangillet) worked on making saving images to BytesIO/StringIO work.

    Thanks to kbanger on discord for looking into this «ljpeg and lpng missing in Setup.SDL2.in» issue, and also for working on updating the pygame buildroot package.

    Fonts matter (don’t they?)

    Font got a touch of modernization applied to it. font.bold = True, font.underline = True and font.italics = True are now things… rather than having to do a font.set_bold(True). Now the freetype Font object has a ‘bgcolor’ attribute to mirror existing ‘fgcolor’ one. ftfont.Font: Fix NameError when resolution is 0 Thanks to Niels Thykier, aka @nthykier

    SysFont is used to load fonts which are already installed on users systems. It’s historically been complex and often not working so well. Not anymore! @MyreMylar made some first steps at adding sysfont tests, and updating the font lists for windows and ubuntu. Then @illume noticed some of those new tests failing on MacOS, because sysfont._add_font_paths was adding ttf to ‘simple font names’. So now it’s working better on the Mac too.

    Optimizations

    Adds MMX, SSE2 & Arm NEON optimised versions of blit_blend_premultiplied() @MyreMylar
    Some tweaks to the pre-multiply alpha blending

    Add a SSE4.2 optimized version of image_tostring for some 32bit surfaces @nthykier

    MSVC compiler optimisation hinting, 1% smaller pygame on windows @MyreMylar

    Faster methods for drawing filled rects and circles of all kinds, care of @robertpfeiffer

    As a small speed up Surface.blits was used in the pygame.sprite module to speed it up a little bit.

    Bug fixes and Cleanups

    The static code analysis tool by microsoft «/analyze» is now being used. Thanks to Dan Lawrence, aka @MyreMylar https://github.com/pygame/pygame/issues/1328

    setup: Error out on unused-value warnings with -pygame-ci @nthykier

    Clean up incompatible pointer casts and add a -Werror for it in the CI builds @nthykier

    Add pgRect_Normalize to C API

    @PeanutbutterWarrior noticed that not all of the modules returned a boolean, sometimes they returned an int Then @MyreMylar stepped up and made a PR to Always return bool from get_init() instead of sometimes returning int

    Reject attempts to delete attributes in that cannot be deleted @nthykier

    >>> import pygame
    >>> c = pygame.color.Color('black')
    >>> del c.a
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: Cannot delete attribute a
    

    Freetype font int casting fix Dan Lawrence (aka @MyreMylar)

    In MacOS we had a problem where Default SDL render driver back to opengl from the metal renderer. This had to do with a problem with our new conan based dependency compilation on MacOS. Hopefully that’s fixed now.

    Issue gardening

                ********
            ****************
          *******************
          ********************
           ********************         wWWWw               wWWWw
              \   //  ********   vVVVv (___) wWWWw         (___)  vVVVv
               \//  *******     (___)  ~Y~  (___)  vVVVv   ~Y~   (___)
                 \////           ~Y~   |    ~Y~   (___)    |/    ~Y~
                  |||//            |    |/   | /  ~Y~/   |     |/
                  |||||           \|// \|// \|/// \|//  \|// \|///
      ,,,,,,,,,,,//||||,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    

    This time 2 ‘critical’ backwards compatibility issues were fixed since the last release. Also plenty of work went into looking at the alpha blit issue, and the color key issues.

    @MyreMylar made a great effort creating some good first issues, but also continued to go through a lot of older issues seeing if they could reproduce them, and asking questions of the original reporter, and also fixing a few here and there. As a result our issue garden is doing pretty well.


    • 8 open ‘critical’ issues (backwards compatibility issues reported by people), and 24 closed (last release: 16 open, 22 closed).
    • merged PRs
    • 1442 Commits since 1.9.6 stable release
    • 276 Commits since 2.0.0.dev8 pre release

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.0.dev10-cp27-cp27m-win32.whl(4.61 MB)
    pygame-2.0.0.dev10-cp35-cp35m-win32.whl(4.63 MB)
    pygame-2.0.0.dev10-cp36-cp36m-win32.whl(4.64 MB)
    pygame-2.0.0.dev10-cp37-cp37m-win32.whl(4.64 MB)
    pygame-2.0.0.dev10-cp38-cp38-win32.whl(4.65 MB)
    pygame-2.0.0.dev10-cp27-cp27m-win_amd64.whl(4.87 MB)
    pygame-2.0.0.dev10-cp35-cp35m-win_amd64.whl(4.95 MB)
    pygame-2.0.0.dev10-cp36-cp36m-win_amd64.whl(4.96 MB)
    pygame-2.0.0.dev10-cp37-cp37m-win_amd64.whl(4.96 MB)
    pygame-2.0.0.dev10-cp38-cp38-win_amd64.whl(4.97 MB)
    pygame-2.0.0.dev10-cp27-cp27m-macosx_10_9_intel.whl(6.57 MB)
    pygame-2.0.0.dev10-cp35-cp35m-macosx_10_9_intel.whl(6.57 MB)
    pygame-2.0.0.dev10-cp36-cp36m-macosx_10_9_intel.whl(6.60 MB)
    pygame-2.0.0.dev10-cp37-cp37m-macosx_10_9_intel.whl(6.59 MB)
    pygame-2.0.0.dev10-cp38-cp38-macosx_10_9_intel.whl(6.60 MB)
    pygame-2.0.0.dev10-cp27-cp27mu-manylinux1_i686.whl(12.38 MB)
    pygame-2.0.0.dev10-cp27-cp27mu-manylinux1_x86_64.whl(13.24 MB)
    pygame-2.0.0.dev10-cp34-cp34m-manylinux1_i686.whl(12.57 MB)
    pygame-2.0.0.dev10-cp34-cp34m-manylinux1_x86_64.whl(13.46 MB)
    pygame-2.0.0.dev10-cp35-cp35m-manylinux1_i686.whl(12.56 MB)
    pygame-2.0.0.dev10-cp35-cp35m-manylinux1_x86_64.whl(13.47 MB)
    pygame-2.0.0.dev10-cp36-cp36m-manylinux1_i686.whl(12.61 MB)
    pygame-2.0.0.dev10-cp36-cp36m-manylinux1_x86_64.whl(13.51 MB)
    pygame-2.0.0.dev10-cp37-cp37m-manylinux1_i686.whl(12.62 MB)
    pygame-2.0.0.dev10-cp37-cp37m-manylinux1_x86_64.whl(13.52 MB)
    pygame-2.0.0.dev10-cp38-cp38-manylinux1_i686.whl(12.75 MB)
    pygame-2.0.0.dev10-cp38-cp38-manylinux1_x86_64.whl(13.65 MB)
    pygame-2.0.0.dev10.tar.gz(5.30 MB)

  • 2.0.0.dev8(May 5, 2020)

    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
    🌼🌸 pip install pygame==2.0.0.dev8
    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻

    One year ago today on the 5th of May 2019 we released the first development release of the pygame 2 series. So today is our anniversary of sorts. 🎉

    Type hints for better editor support.

    Type hints are now installed thanks to @MightyJosip https://github.com/pygame/pygame/pull/1685 This lets static type checkers do TAB completion and check your function inputs and outputs. Giving an altogether nicer experience when programming with pygame.

    Color arguments are fuzzy wuzzy human friendlier

    Thanks to new pygame team member @nthykier in https://github.com/pygame/pygame/pull/1676
    there is now support for writing colors in an easier way.

    
    surf.fill('black') # surf.fill(pygame.Color('black'))
    surf.fill('#FFEECCF0') # surf.fill(pygame.Color('#FFEECCF0'))
    

    Drawing improvements, and rounded corners.

    Drawing improvements including more correct AND faster circle drawing, rounded rects. Thanks to @charlesej @MightyJosip and @robertpfeiffer. https://github.com/pygame/pygame/pull/1503

    
    # Draw a rectangle with rounded corners
    pygame.draw.rect(screen, GREEN, [115, 210, 70, 40], 10, border_radius=15)
    pygame.draw.rect(screen, RED, [135, 260, 50, 30], 0, border_radius=10, border_top_left_radius=0,
                     border_bottom_right_radius=15)
    
    # Draw only one circle quadrant
    pygame.draw.circle(screen, BLUE, [250, 250], 40, 0, draw_top_right=True)
    pygame.draw.circle(screen, RED, [250, 250], 40, 30, draw_top_left=True)
    pygame.draw.circle(screen, GREEN, [250, 250], 40, 20, draw_bottom_left=True)
    pygame.draw.circle(screen, BLACK, [250, 250], 40, 10, draw_bottom_right=True)
    
    
    • Drawing an empty string now returns a zero sized surface and rect, before it was 1 pixel wide and the height of the font. https://github.com/pygame/pygame/pull/1488 Thanks to the @MightyJosip
    • Additionally, zero sized rects do not collide with anything anymore — thanks to @thiagojobson and @charlesej https://github.com/pygame/pygame/pull/1226
    • Fix drawing ellipses with width values > 1 @charlesej
    • draw.c code refactoring and cleanup @MightyJosip
    • Declare UTF-8 encoding in draw_py @stefanor

    pygame recipe added to Python-For-Android

    Thanks to @AndreMiras, @robertpfeiffer and others there is a pygame recipe in python-for-android https://github.com/kivy/python-for-android/pull/2164 which is a python for android distribution.

    Documentation and tutorials

    Lots of little fixes, and even a whole new tutorial were made in this release. When someone takes the time to fix a little problem in the documentation that can help many people in the future from getting lost themselves.

    • A new tutorial in Korean (and english) https://github.com/pygame/pygame/pull/1512 from first time contributor @rumia0601
    • Thanks to first time contributor @glennmackintosh for fixing the docs for KMOD_MODE https://github.com/pygame/pygame/pull/1657
    • pygame.cursors.compile doc fix thanks to @MyreMylar
    • Thanks to @w-hat for the doc cleanups https://github.com/pygame/pygame/pull/1687.
      @Starbuck5 Fixed a typo in gfxdraw doc
    • Use an explicit encoding in the documentation headers writer @stefanor and Dominik George.
    • Fix documentation for Vector3’s rotate methods @charlesej
    • Fix a number of spelling mistakes @stefanor
    • Fix incorrect comments in draw module example @Starbuck5
    • Thanks @vilhelmprytz for a little doc fix :)
    • pygame.music.play() looping docs consistent with pygame and SDL behaviour @MyreMylar
    • Document BLEND_PREMULTIPLIED Surface.blit flag @MyreMylar
    • Correction pygame.sprite.LayeredUpdates _layer attribute name @glennmackintosh

    Optimizations

    • Speed up pygame.image.fromstring @nthykier
    • Load time on windows and linux improved due to avoiding loading element tree.
    • SDL 2.0.12 includes assembler optimizations for many blit drawing functions for ARM platforms like Raspberry Pi.
    • The assembler optimized scale function was enabled again thanks @stefanor
    • The draw bounds tests were sped up @charlesej
    • circle drawing was sped up again, and is more correct.

    new feature pygame.key.key_code

    There’s now a function to return the key code from the name of a key.

    Thanks to @MyreMylar for digging into C code to implement, document and test this feature.

    >>> pygame.key.key_code("return") == pygame.K_RETURN
    True
    >>> pygame.key.key_code("0") == pygame.K_0
    True
    >>> pygame.key.key_code("space") == pygame.K_SPACE
    True
    

    Bug fixes and Cleanups

    Lots of bug fixes and cleanups continued to happen in the pygame code base.
    We reached a milestone of turning lots of compiler warnings into errors for our linux builds.
    In our C/C++ code we are now at zero alerts with LGTM, and only 10 left in our python code.

    • Fixed some potential memory leaks in low memory conditions.
    • Cleanups continued including various cppchecker fixes Some LGTM bug fixes were made too. Thanks to @charlesej
    • The Mask.to_surface method got a lot of tests, so did the PixelArray.compare method.
    • The playmus example was fixed, thanks to @flaambe Also the — setmodescale example fixed thanks to @galexandreg
    • Fixed rect collision with negative size and image.frombuffer not working with ARGB @MightyJosip
    • Fix Python syntax warning @charlesej
    • midi: fix midi_to_ansi_note @zuh0
    • Close file handle fixed in MacOS @markph0204
    • Fix memory leak in pygame.font.Font.metrics @charlesej
    • OpenGL screen size from set_mode as requested. @illume
    • fix set_controls in _camera.c on python 3.8 @robertpfeiffer
    • Thanks to first time contributor @DotMars for making image.load throw FileNotFoundError instead of the generic pygame.error when the file does not exist.

    Dependencies updated

    pygame uses a whole lot of different pieces of software to do a lot of the heavy lifting.

    • There’s a new conan based build system. Conan is a cross platform C/C++ package manager written in python. It’s replaced our homebrew based build system for Mac, but may potentially be an option for other platforms too.
    • Windows dependencies were updated: SDL 2.0.12, SDL_ttf 2.0.15, and jpeg 9d. The Windows dependency downloader: replaced requests with urllib, so that it can be used by people without first installing the requests module.
    • The linux ‘manylinux’ build dependencies were updated. freetype-2.10.1, libpng-1.6.37, libwebp-1.1.0, mpg123-1.25.13, libogg-1.3.4, SDL2-2.0.12.
    • Portmidi is skipped on Debian GNU/kFreeBSD and GNU/Hurd too thanks to @stefanor and Debian folk.

    Development improvements

    Along with the typehints for most pygame functions (which I’ve already mentioned above) there were some improvements for people developing pygame itself.

    Many compiler errors now cause the CI system to fail if present. Thanks again to @charlesej for many fixes https://github.com/pygame/pygame/pull/1634 and to @nthykier for making our CI bots fail for more warnings https://github.com/pygame/pygame/pull/1652

    Previous pygame header files for C extensions using pygame were not installed. Now they are thanks to @robertpfeiffer https://github.com/pygame/pygame/pull/1662

    Some depreciation warnings from python 3.8 were fixed.

    Community help

    A special thanks to all the people who help out others. claudeb, DaFluffyPotato, MyreMylar, MichaelCPalmer, jtiai, Rabbid76, The Big Kahuna, sloth, Kingsley, … Also a big thanks to the people who run community spaces and events like lordmauve who runs pyweek, and the /r/pygame community members.

    Issues

    @MyreMylar in particular went above and beyond investigating lots of old pygame issues, and closing many. Some of them several years old.

    I’m happy that 4 ‘critical’ backwards compatibility issues were fixed since the last release. If you notice a backwards compatibility issue with the pygame 2 series please let us know with a delicious issue report. Nom nom nom 🍕


    • 16 open ‘critical’ issues (backwards compatibility issues reported by people), and 22 closed (last release: 13 open, 18 closed).
    • merged PRs
    • 1166 Commits since 1.9.6 stable release
    • 269 Commits since 2.0.0.dev6 pre release

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.0.dev8-cp27-cp27m-win32.whl(4.58 MB)
    pygame-2.0.0.dev8-cp35-cp35m-win32.whl(4.61 MB)
    pygame-2.0.0.dev8-cp36-cp36m-win32.whl(4.62 MB)
    pygame-2.0.0.dev8-cp37-cp37m-win32.whl(4.62 MB)
    pygame-2.0.0.dev8-cp38-cp38-win32.whl(4.63 MB)
    pygame-2.0.0.dev8-cp27-cp27m-win_amd64.whl(4.87 MB)
    pygame-2.0.0.dev8-cp35-cp35m-win_amd64.whl(4.94 MB)
    pygame-2.0.0.dev8-cp36-cp36m-win_amd64.whl(4.95 MB)
    pygame-2.0.0.dev8-cp37-cp37m-win_amd64.whl(4.95 MB)
    pygame-2.0.0.dev8-cp38-cp38-win_amd64.whl(4.96 MB)
    pygame-2.0.0.dev8-cp27-cp27m-macosx_10_9_intel.whl(6.49 MB)
    pygame-2.0.0.dev8-cp35-cp35m-macosx_10_9_intel.whl(6.49 MB)
    pygame-2.0.0.dev8-cp36-cp36m-macosx_10_9_intel.whl(6.53 MB)
    pygame-2.0.0.dev8-cp37-cp37m-macosx_10_9_intel.whl(6.51 MB)
    pygame-2.0.0.dev8-cp38-cp38-macosx_10_9_intel.whl(6.52 MB)
    pygame-2.0.0.dev8.tar.gz(5.22 MB)
    pygame-2.0.0.dev8-cp27-cp27mu-manylinux1_i686.whl(12.28 MB)
    pygame-2.0.0.dev8-cp27-cp27mu-manylinux1_x86_64.whl(13.14 MB)
    pygame-2.0.0.dev8-cp34-cp34m-manylinux1_i686.whl(12.47 MB)
    pygame-2.0.0.dev8-cp34-cp34m-manylinux1_x86_64.whl(13.35 MB)
    pygame-2.0.0.dev8-cp35-cp35m-manylinux1_i686.whl(12.46 MB)
    pygame-2.0.0.dev8-cp35-cp35m-manylinux1_x86_64.whl(13.36 MB)
    pygame-2.0.0.dev8-cp36-cp36m-manylinux1_i686.whl(12.51 MB)
    pygame-2.0.0.dev8-cp36-cp36m-manylinux1_x86_64.whl(13.41 MB)
    pygame-2.0.0.dev8-cp37-cp37m-manylinux1_i686.whl(12.52 MB)
    pygame-2.0.0.dev8-cp37-cp37m-manylinux1_x86_64.whl(13.41 MB)
    pygame-2.0.0.dev8-cp38-cp38-manylinux1_i686.whl(12.65 MB)
    pygame-2.0.0.dev8-cp38-cp38-manylinux1_x86_64.whl(13.54 MB)

  • 2.0.0.dev6(Oct 28, 2019)

    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻
    🌼🌸 pip install pygame==2.0.0.dev6
    🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻🌹🥀🌷🌼🌸💐💮🌺🌻

    Python 3.8 support. For pygame 2 anyway. Decided not to do it for pygame 1.9.6, and to instead try and fix a few more of those ‘critical’ blocker issues (current critical issue count is lucky 13).

    Virtual Mouse mode with relative mouse movements was fixed to how it was in pygame 1.9.x — thanks to new committer @mcpalmer1980. Who also added a new pygame.music.fadein() function, plus examples!

    Support for old SDL1 SDL_VIDEO_WINDOW_POS and SDL_VIDEO_CENTERED environment variables which were removed in SDL2.

    The Great Examples Cleanup of October 2019 is complete.

    All of the examples were tidied up. Extra documentation was added, and things clarified. Thanks to new committer @Starbuck5 for their work on examples/eventlist.py. There’s now 43 example files!! Cleanups like removing usage of from pygame.locals import *, which is kind of cool… but also not considered good practice in the wider python community. Also the examples are now formatted with the python code for-matter. Additionally two interesting AND EDUCATIONAL new examples: music_drop_fade.py, and font_viewer.py were contributed by @mcpalmer1980

    python3 -m pygame.examples.font_viewer
    python3 -m pygame.examples.music_drop_fade
    

    Cleanliness brings us joy

    As part of the continuing ~~code~~prose cleanups of the pygame ~~code~~prose-base, we are now warning free on the clang C compiler on MacOS. Additionally warnings are now errors on the clang compiler when the robots check our code for us. We are also very close to zero warnings on different gcc versions, and Microsoft Visual C compiler too. We reached a new milestone with the ‘LGTM’ static analyzer. It now gives pygame an «A+» for both the python code, and the C code — meaning pygame is within the top 5% of projects with those languages. LGTM now checks new pull requests automatically, and helps us find some issues on pull requests. The Coverity static analyzer rates pygame source code as having less defects than high quality code bases like the Linux kernel, OpenSSL, and libcurl. Strangely (to me) pygame is regularly trending on github as a C project. A lot of the cleanups were done by @charlesej, so thanks a lot for that! Oh, and a warning… please don’t look at our setup.py file!!!! It’s still scary AF. We have over 45,000 lines of python in pygame, and 350,000 lines of C… and a lot of that needs some attention.

    Some developer improvements include verbose mode to our test runner (python3 -m pygame.tests -v), and the mechanism to share functions and data in our C API has been documented. See the Hacking developer guide.

    Want to collide between a rect and a line?

    Well, @charlesej has you covered with the new Rect.clipline(). This can also tell you where a line clips with a Rect. It was great to see the discussion on this as different people talked about API trade offs, and together came up with a very nice API. Thanks to @mcpalmer1980 for the discussion on the design, and also to @thiagojobson (who is now part of the pygame team on github! 🎈 🎉 ).

    First time committer @hnrkcode fixed how comments are displayed on the website. Also thanks to @0101011 for a doc fix. Speaking of new committers, @galexandreg helped out fixing the pygame.mixer.Sound.get_num_channels() function to return a correct result in some cases (the sound stuff got a number of fixes this release!)

    @robertpfeiffer did some more work on the SCALED feature, after a patch from @lordmauve enabling use of it with OpenGL apps.

    Thanks to TravisCI who have allowed us to try out their alpha ARM64 support. We don’t have pygame building on it yet, but hopefully soon it can join our other ROBOT builders like the power pc one.

    In distro packaging news, FreeBSD now has pygame 1.9.6. Which is great, because it stuck around at 1.8.x for many years now. Thanks to Wen, and Nathan in maintaining it there. See the giant list of 119 pygame packages in different distros. No one seems to have packaged a pre-release of pygame 2 yet.

    Cheers to the folks in the discord chat helping people out, chatting and sharing project updates on things. Especially to claudeb, and blubberquark.

    All the regressions that were reported in issues for the 2.0.0.dev4 release have been fixed. Including one circle drawing regression fix by @MightyJosip, who also fixed a long lasting ‘thick line’ pygame.draw issue. Both very tricky ones! Also thanks to some very detailed unit tests that were written by @charlesej for the draw module that let us verify the drawing algorithms.

    I’m happy that 5 ‘critical’ backwards compatibility issues were fixed since the last release. If you notice a backwards compatibility issue with the pygame 2 series please let us know with a delicious issue report. Nom nom nom 🍕


    • 13 open ‘critical’ issues (backwards compatibility issues reported by people), and 18 closed.
    • merged PRs
    • 885 Commits since 1.9.6 stable release
    • 172 Commits since 2.0.0.dev4 pre release

    ps. Why dev6 instead of dev5? This time 2.0.0.dev5 was the version given to the git repo. So we can tell if someone is compiling pygame from source in bug reports. The git repo pygame will become 2.0.0.dev7, and when released it will be 2.0.0.dev8. This is how libsdl are doing things now too, and it’s a good idea.
    🤖 is coming. Happy hacking!

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.0.dev6-cp27-cp27m-win32.whl(4.51 MB)
    pygame-2.0.0.dev6-cp35-cp35m-win32.whl(4.53 MB)
    pygame-2.0.0.dev6-cp36-cp36m-win32.whl(4.55 MB)
    pygame-2.0.0.dev6-cp37-cp37m-win32.whl(4.55 MB)
    pygame-2.0.0.dev6-cp27-cp27m-macosx_10_11_intel.whl(5.18 MB)
    pygame-2.0.0.dev6-cp38-cp38-win32.whl(4.56 MB)
    pygame-2.0.0.dev6-cp27-cp27m-win_amd64.whl(4.79 MB)
    pygame-2.0.0.dev6-cp37-cp37m-macosx_10_11_intel.whl(5.25 MB)
    pygame-2.0.0.dev6-cp35-cp35m-win_amd64.whl(4.86 MB)
    pygame-2.0.0.dev6-cp36-cp36m-win_amd64.whl(4.87 MB)
    pygame-2.0.0.dev6-cp37-cp37m-win_amd64.whl(4.87 MB)
    pygame-2.0.0.dev6-cp38-cp38-win_amd64.whl(4.88 MB)
    pygame-2.0.0.dev6-cp36-cp36m-macosx_10_11_intel.whl(5.25 MB)
    pygame-2.0.0.dev6-cp27-cp27mu-manylinux1_i686.whl(13.39 MB)
    pygame-2.0.0.dev6-cp27-cp27mu-manylinux1_x86_64.whl(14.23 MB)
    pygame-2.0.0.dev6-cp34-cp34m-manylinux1_i686.whl(13.58 MB)
    pygame-2.0.0.dev6-cp34-cp34m-manylinux1_x86_64.whl(14.44 MB)
    pygame-2.0.0.dev6-cp35-cp35m-manylinux1_i686.whl(13.57 MB)
    pygame-2.0.0.dev6-cp35-cp35m-manylinux1_x86_64.whl(14.45 MB)
    pygame-2.0.0.dev6-cp36-cp36m-manylinux1_i686.whl(13.62 MB)
    pygame-2.0.0.dev6-cp36-cp36m-manylinux1_x86_64.whl(14.49 MB)
    pygame-2.0.0.dev6-cp37-cp37m-manylinux1_i686.whl(13.63 MB)
    pygame-2.0.0.dev6-cp37-cp37m-manylinux1_x86_64.whl(14.50 MB)
    pygame-2.0.0.dev6-cp38-cp38-manylinux1_i686.whl(13.75 MB)
    pygame-2.0.0.dev6-cp38-cp38-manylinux1_x86_64.whl(14.63 MB)
    pygame-2.0.0.dev6-cp38-cp38-macosx_10_11_intel.whl(5.28 MB)
    pygame-2.0.0.dev6.tar.gz(3.48 MB)

  • 2.0.0.dev4(Oct 7, 2019)

    🎮👾👽🎮👾👽🎮👾👽🎮👾👽🎮👾

    G’day! It’s 2.0.0.dev4 time!

    🎮👾👽🎮👾👽🎮👾👽🎮👾👽🎮👾

    python3 -m pip install pygame==2.0.0.dev4 --pre --user

    What goodies do we have in store?

    Firstly, some SDL2 compatibility issues were fixed. Like the window initially defaults to black, and the unicode field of keydown events is filled. Thanks to @dlon.

    Speaking of SDL2, we are now shipping SDL 2.0.10 which includes stuff like batching renderer and lots of bug fixes, including to the Metal renderer on Mac, lots of other stuff. Thanks to all the libSDL people.

    Many, many fixes thanks to @charlesej and some static analysis tools.

    Some new contributors deserve thanks 🎉 🎈 including
    @thiagojobson @flaambe @mampersat @s0lst1ce

    @robertpfeiffer and @dlon fixed some issues with the fancy SCALED feature, and @robertpfeiffer got the toggle_fullscreen function working more reliably too!

    And speaking of helping out, @robertpfeiffer also helped out @nhpackard with an optimization to transform.scale. When scaling to twice the width and height, a special optimized routine by @nhpackard is used.

    Lots of fixes and tests happened to the draw, and mask modules mostly thanks to @charlesej (but also to @thiagojobson)

    Lots of infrastructure changes happened to our build system to make things easier for
    developers. Firstly we started using LGTM which runs some lint tools on our code for us.
    Secondly we started using lots of other testing tools. Thanks to Travis CI we have a
    Power PC CPU robot building things. @takluyver made a PR for the new manylinux2010 which
    we sadly haven’t started using yet. As usual a tiny bit more of the release process has been automated.

    An article for developers on contemporary C tools is still unfinished(but probably useful for developers of pygame). Here’s some issues of those tools applied to pygame: https://github.com/pygame/pygame/labels/tooling

    Again @charlesej in particular has been amazing in going through mountains of issues uncovered.
    The pygame code base is significantly cleaner, more portable, and less buggy because of it.

    Indic Scripts including Hindi, Telugu, Tamil are closer to being rendered now thanks to the
    work of new contributor @peanutbutterandcrackers tracking down things and writing
    some automated tests for it. This work is ready to be developed further and is moving forward! Thanks!

    Thanks for all the people trying out the pygame 2.0.0.dev3 builds and (submitting issues) or patches including: @larryhastings @humanbeast7 @Pololot64 @mcpalmer1980
    @husano896 @galexandreg @mgedmin @cgohlke @cipri-tom @noisnemid @DudmasterUltra
    @agdt3 @crowjdh @JOHNIDnDNIW @lordmauve @dheerajakula

    Speaking of bugs, as people have been using the 2.0.0.dev3 release, they’ve been finding various bugs. All SDL2/pygame 2 related compatibility issues reported by people are marked as critical.
    https://github.com/pygame/pygame/labels/critical

    These «critical» issues will be a focus as we move forward to shipping pygame 2.0.0.
    If you feel like helping out with any of these «critical» issues, that would be highly appreciated.

    - confirm the bug (on your platform).
    - cheer people on in the issues
    - write a minimal working example script so people can reproduce the issue.
    - write a test case, or try and clarify the issue
    

    https://github.com/pygame/pygame/labels/critical

    • merged PRs
    • 713 Commits since 1.9.6 stable release
    • 299 Commits since 2.0.0.dev3 pre release

    ps. DaFluffyPotato released a new commercial game using the pygame 2.0.0.dev3 release.
    «Drawn Down Abyss» is getting good reviews… check it out:
    https://www.pygame.org/project/4294
    pps. Feels like progress? Happy hacking!

    Source code(tar.gz)
    Source code(zip)
    pygame-2.0.0.dev4-cp27-cp27m-win32.whl(4.52 MB)
    pygame-2.0.0.dev4-cp35-cp35m-win32.whl(4.54 MB)
    pygame-2.0.0.dev4-cp36-cp36m-win32.whl(4.55 MB)
    pygame-2.0.0.dev4-cp37-cp37m-win32.whl(4.55 MB)
    pygame-2.0.0.dev4-cp27-cp27m-win_amd64.whl(4.80 MB)
    pygame-2.0.0.dev4-cp35-cp35m-win_amd64.whl(4.86 MB)
    pygame-2.0.0.dev4-cp36-cp36m-win_amd64.whl(4.87 MB)
    pygame-2.0.0.dev4-cp37-cp37m-win_amd64.whl(4.87 MB)
    pygame-2.0.0.dev4-cp37-cp37m-macosx_10_11_intel.whl(5.26 MB)
    pygame-2.0.0.dev4-cp27-cp27m-macosx_10_11_intel.whl(5.19 MB)
    pygame-2.0.0.dev4-cp36-cp36m-macosx_10_11_intel.whl(5.25 MB)
    pygame-2.0.0.dev4.tar.gz(3.50 MB)
    pygame-2.0.0.dev4-cp37-cp37m-manylinux1_i686.whl(13.60 MB)
    pygame-2.0.0.dev4-cp36-cp36m-manylinux1_i686.whl(13.59 MB)
    pygame-2.0.0.dev4-cp35-cp35m-manylinux1_i686.whl(13.55 MB)
    pygame-2.0.0.dev4-cp34-cp34m-manylinux1_i686.whl(13.56 MB)
    pygame-2.0.0.dev4-cp27-cp27mu-manylinux1_i686.whl(13.36 MB)
    pygame-2.0.0.dev4-cp37-cp37m-manylinux1_x86_64.whl(14.48 MB)
    pygame-2.0.0.dev4-cp36-cp36m-manylinux1_x86_64.whl(14.47 MB)
    pygame-2.0.0.dev4-cp35-cp35m-manylinux1_x86_64.whl(14.43 MB)
    pygame-2.0.0.dev4-cp34-cp34m-manylinux1_x86_64.whl(14.41 MB)
    pygame-2.0.0.dev4-cp27-cp27mu-manylinux1_x86_64.whl(14.20 MB)

conda 4.2 MB

|

win-32/pygame-1.9.2a0-py35_0.tar.bz2

 6 years and 9 months ago

dschreij

3237

main

conda 4.1 MB

|

win-32/pygame-1.9.2a0-py27_0.tar.bz2

 6 years and 9 months ago

dschreij

1325

main

conda 4.2 MB

|

win-64/pygame-1.9.2a0-py27_0.tar.bz2

 6 years and 10 months ago

dschreij

20721

main

conda 4.6 MB

|

win-64/pygame-1.9.2a0-py35_0.tar.bz2

 6 years and 10 months ago

dschreij

29828

main

conda 2.6 MB

|

osx-64/pygame-1.9.2a0-py35_0.tar.bz2

 6 years and 10 months ago

dschreij

4832

main

conda 3.7 MB

|

linux-64/pygame-1.9.2a0-py27_0.tar.bz2

 6 years and 10 months ago

dschreij

6272

main

conda 3.7 MB

|

linux-64/pygame-1.9.2a0-py35_0.tar.bz2

 6 years and 10 months ago

dschreij

5301

main

conda 2.6 MB

|

osx-64/pygame-1.9.2a0-py27_0.tar.bz2

 6 years and 10 months ago

dschreij

5724

main

Предположительно у вас система Windows 7, разрядность: 64 Bits
  Подробнее

Скачать Pygame (Python 3.2) с нашего сайта

Этот файл мы отметили как основной. Если вы не знаете что скачивать, то скачивайте его.

6.13 Мб


Проверено антивирусами

Подробнее

+

1

-

0

pygame-1.9.2a0.win32-py3.2.msi
|
soft.mydiv.net
MD5: 71e8d3d1679a9d803302ff2923406def
SHA256: 18d88fb656e1868e0949e0189d1a2b03d697bd9d9a539cc7131089b4284157bf

Скачать Pygame (Python 2.7) с нашего сайта

6.14 Мб


Проверено антивирусами

Подробнее

+

0

-

1

pygame-1.9.2a0.win32-py2.7.msi
|
soft.mydiv.net
MD5: 9d49eb5d2fe04eb3fe4aed6b780fce06
SHA256: f992d6532a71eda283acc09b571a8c86c963773260b3a24087ae8ca162d11df8

Скачать Pygame (Python 2.4) с нашего сайта

2.96 Мб


Проверено антивирусами

Подробнее

+

0

-

1

pygame-1.9.1release.win32-py2.4.exe
|
soft.mydiv.net
MD5: 8f5a0358e5dc56a8582cd2a7e6d6ad4f
SHA256: 5ce65d59d5bef4cebd40b7dd64612a99b0485f0a68c92fcf7a1027f44fd1f8b7

Внимание! Мы стараемся тщательно проверять все программы, но не гарантируем абсолютную безопасность скачиваемых файлов. Администрация сайта не
несет ответственности за содержание файлов, программ и возможный вред от их использования.

  • Partition Wizard

  • Partition Manager

  • How to Install PyGame on Windows 10? [A Full Guide]

How to Install PyGame on Windows 10? [A Full Guide] [Partition Manager]

By Vega | Follow |
Last Updated January 05, 2023

PyGame is a set of cross-platform modules in the Python programming language, which means you can install it on any operating system, and this article from MiniTool Partition Wizard tells you how to install PyGame on Windows 10.

PyGame depends on Python, which means you must install Python before installing PyGame. Here is the guide about installing PyGame on Windows 10.

Install Python on Windows 10

Note: Before downloading the Python, you need to check your computer version and system type by navigating the path: Settings > System > About. The latest version of Python is not applicable to Windows 7 or earlier. This means you can only use Python 3 on Windows 8 or later versions.

check computer version and system type

Step 1: Visit the Python website and download the latest version of Python 3. If you are using a 32-bit system, please select Windows installer (32-bit); if you are using a 64-bit system, please select the Windows installer (64-bit).

download Python

Step 2: Open the Python installer, check the Install launcher for all users (recommended) and Add Python 3.10 to PATH boxes. Then click Install Now.

install Python

Or you can click the Customize Installation option and make sure the following boxes are checked: Documentation, pip, tcl/tk and IDLE, Python test suite, py launcher, for all users (requires elevation). Then click Next.

click Next

After entering the Advanced Options dialog box, you must also check the following boxes here: Install for all users, Add Python to the environment variables. Others you can choose according to your needs. Then click Install.

install Python

Install PyGame on Windows 10

Once finish Python setup on Windows 10, you can start to try installing PyGame on Windows 10.

Step 1: Locate the Python folder.

By default, the Python folder is located at C:Program Files. So, you can open the File Explorer and then go to the path to locate the Python folder.

Step 2: Copy the path/address of the Python folder.

Right click the Python name at the top of the File Explorer screen, and then click Copy Address. The copied address looks like «C:Program FilesPython310».

copy the Python folder address

Step 3: Create the path.

After copying the address, you need to create a path in the environment variable.

  1. Open the Control Panel and navigate to the path: System and Security > System > Advanced System Settings > Environment Variables.
  2. Choose Path and click Edit > New, and then paste the path copied from the File Explorer into the empty text box generated on the environment variables panel.
  3. Click OK twice to save the changes.

choose Path and click Edit

Step 4: Open Command Prompt as an administrator.

  1. Open the Start menu and search for cmd in the search box.
  2. Right-clicking the search result and select Run as administrator.

Step 5: In the Command Prompt, type cd and a space, and then right-click in the Command Prompt to paste the path into Python. Then press Enter.

cd C:Program FilesPython310

Step 6: Type cd Scripts in the command prompt and press Enter.

Step 7: Type pip install pygame and press Enter to install Pygame.

Pygame should have been successfully installed on Windows 10. To verify this, type python and press Enter to start the Python interactive interpreter. Then type import pygame in the interpreter and press Enter.

If there is no error after typing import pygame in the interpreter, you have successfully installed Pygame on Windows. You can now use the Pygame library to write any graphics program you want.

Bottom Line

As you can see, a complete guide on how to install PyGame on Windows 10 is illustrated in the post. If you have any questions about this method, please leave them in the comment zone and we will try to answer them as soon as possible.

About The Author

Vega

Position: Columnist

Vega joined MiniTool as an editor after graduation. She enjoys helping people with computer problems, including disk management, data recovery, and more. She is constantly expanding her knowledge in related fields. And she will continue to bring more easy-to-understand professional articles to help people solve various problems on the PC.

In her daily life, Vega enjoys hanging out with friends, shopping online and listening to music. She is someone who knows how to enjoy life.

  • Partition Wizard

  • Partition Manager

  • How to Install PyGame on Windows 10? [A Full Guide]

How to Install PyGame on Windows 10? [A Full Guide] [Partition Manager]

By Vega | Follow |
Last Updated January 05, 2023

PyGame is a set of cross-platform modules in the Python programming language, which means you can install it on any operating system, and this article from MiniTool Partition Wizard tells you how to install PyGame on Windows 10.

PyGame depends on Python, which means you must install Python before installing PyGame. Here is the guide about installing PyGame on Windows 10.

Install Python on Windows 10

Note: Before downloading the Python, you need to check your computer version and system type by navigating the path: Settings > System > About. The latest version of Python is not applicable to Windows 7 or earlier. This means you can only use Python 3 on Windows 8 or later versions.

check computer version and system type

Step 1: Visit the Python website and download the latest version of Python 3. If you are using a 32-bit system, please select Windows installer (32-bit); if you are using a 64-bit system, please select the Windows installer (64-bit).

download Python

Step 2: Open the Python installer, check the Install launcher for all users (recommended) and Add Python 3.10 to PATH boxes. Then click Install Now.

install Python

Or you can click the Customize Installation option and make sure the following boxes are checked: Documentation, pip, tcl/tk and IDLE, Python test suite, py launcher, for all users (requires elevation). Then click Next.

click Next

After entering the Advanced Options dialog box, you must also check the following boxes here: Install for all users, Add Python to the environment variables. Others you can choose according to your needs. Then click Install.

install Python

Install PyGame on Windows 10

Once finish Python setup on Windows 10, you can start to try installing PyGame on Windows 10.

Step 1: Locate the Python folder.

By default, the Python folder is located at C:Program Files. So, you can open the File Explorer and then go to the path to locate the Python folder.

Step 2: Copy the path/address of the Python folder.

Right click the Python name at the top of the File Explorer screen, and then click Copy Address. The copied address looks like «C:Program FilesPython310».

copy the Python folder address

Step 3: Create the path.

After copying the address, you need to create a path in the environment variable.

  1. Open the Control Panel and navigate to the path: System and Security > System > Advanced System Settings > Environment Variables.
  2. Choose Path and click Edit > New, and then paste the path copied from the File Explorer into the empty text box generated on the environment variables panel.
  3. Click OK twice to save the changes.

choose Path and click Edit

Step 4: Open Command Prompt as an administrator.

  1. Open the Start menu and search for cmd in the search box.
  2. Right-clicking the search result and select Run as administrator.

Step 5: In the Command Prompt, type cd and a space, and then right-click in the Command Prompt to paste the path into Python. Then press Enter.

cd C:Program FilesPython310

Step 6: Type cd Scripts in the command prompt and press Enter.

Step 7: Type pip install pygame and press Enter to install Pygame.

Pygame should have been successfully installed on Windows 10. To verify this, type python and press Enter to start the Python interactive interpreter. Then type import pygame in the interpreter and press Enter.

If there is no error after typing import pygame in the interpreter, you have successfully installed Pygame on Windows. You can now use the Pygame library to write any graphics program you want.

Bottom Line

As you can see, a complete guide on how to install PyGame on Windows 10 is illustrated in the post. If you have any questions about this method, please leave them in the comment zone and we will try to answer them as soon as possible.

About The Author

Vega

Position: Columnist

Vega joined MiniTool as an editor after graduation. She enjoys helping people with computer problems, including disk management, data recovery, and more. She is constantly expanding her knowledge in related fields. And she will continue to bring more easy-to-understand professional articles to help people solve various problems on the PC.

In her daily life, Vega enjoys hanging out with friends, shopping online and listening to music. She is someone who knows how to enjoy life.

Понравилась статья? Поделить с друзьями:
  • Pyconfig h no such file or directory windows
  • Pycharm скачать бесплатно для windows 10 64 bit
  • Pycharm скачать 32 bit windows 7 2017
  • Pycharm не запускается на windows 10
  • Pycharm не видит интерпретатор python windows