Skip to content

2.3.0

Compare
Choose a tag to compare
@MightyJosip MightyJosip released this 15 Jun 06:02

pygame-ce 2.3.0

โ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐Ÿ˜Ž๐Ÿ„๐Ÿš๐Ÿ๏ธ๐Ÿนโ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ
pip uninstall pygame
pip install pygame-ce --upgrade
โ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐Ÿ˜Ž๐Ÿ„๐Ÿš๐Ÿ๏ธ๐Ÿนโ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ

Welcome to the newest release of pygame-ce! Summer is near (here in the northern hemisphere), and with that comes the time of vacations and game jams. The pygame-ce team has been working hard on improving several things for the last few months so you can enjoy your programming activity. You will be seeing a lot of light during these months, so for a change you can now view the pygame-ce documentation in dark mode. Outside of that, there have been a lot of other improvements, bug fixes, and other stuff which are listed below. We hope you will enjoy the changes, and we will continue to improve our beloved library in the following releases.

Besides the dark mode docs, a big story in this release are improvements to the experimental pygame._sdl2 module. It now has non-skeleton documentation, and the Window class was completely rewritten in C to enable better integration with the rest of pygame-ce.

Check out what we've been working on!

What's Changed

Additions

  • @durkisneer1 added the pygame.Surface.get_frect() convenience method. #2071
  • @yunline added pygame.mixer.Channel.set_source_location() (for panning-like effects). #1844
  • @PurityLake added keyword argument support to Font.render(). #2000
  • @Sjmarf improved a font warning message emitted when requested system fonts are not found. For example: The system font 'comicsans2' couldn't be found. Did you mean: 'comicsans', 'comicsansms'? #2147

Bug Fixes

  • @ankith26 fixed audio issues on older Macs (like pygame.mixer wouldn't work at all). If you see Library not loaded: @loader_path/libmp3lame.0.dylib, this is fixed now. #2118
  • @Starbuck5 fixed a regression where "tracker music" (XM/MOD/IT files) would no longer play on Windows. #2152
  • @Starbuck5 fixed a regression in pygame.transform.scale() when scaling to a destination surface with a different pixel format. #2172
  • @yunline fixed a SystemError issue when disconnecting and reconnecting controllers. #2048
  • @Temmie3754 fixed issue when converting surface to 8 bit surface with palettes. #2031
  • @yunline made it so pygame-ce will raise an error if source and destination surfaces are the same in pygame.transform.(box/gaussian)_blur, rather than just producing incorrect results. #2161
  • @cbdj fixed the Android build configuration. #2249

Optimizations

  • @ScriptLineStudios optimized a case for pygame.draw.polygon when drawing triangles. #2126
  • @itzpr3d4t0r optimized pygame.Rect.move, pygame.Rect.move_ip (and corresponding FRect methods) with FASTCALL, a 20-40% speedup. #2040
  • @Matiiss optimized pygame.Surface.get_(f)rect with FASTCALL, achieving a 20-40% speedup as well. #2179
  • @Starbuck5 slightly improved create/destroy performance and reduced memory usage of pygame.math.Vector(2/3) (enabling future optimizations). #2174

Deprecations

  • @MyreMylar added deprecation warnings for pygame.sprite.RenderPlain, pygame.sprite.RenderClear and pygame.sprite.OrderedUpdates (will be removed in pygame-ce 2.4.0). #2036
  • @SSS-Says-Snek added deprecation warnings for pygame.image.tostring and pygame.image.fromstring in favor of (to/from)bytes. #2101

Documentation, Examples, and Type Hints

Operations and Code Quality

New Contributors

Other News

DaFluffyPotato gave us a shoutout in a video about pygame-ce on his channel, titled "Pygame CE - Better & Faster." Check it out if you're interested: https://www.youtube.com/watch?v=pYq9edSUaOw

Full Changelog: 2.2.1...2.3.0