Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rswinkle/inventwithpython_pysdl2
Porting all the code/games from Al Sweigart's pygame book to use PySDL2
https://github.com/rswinkle/inventwithpython_pysdl2
game-development games pygame pysdl2
Last synced: about 1 month ago
JSON representation
Porting all the code/games from Al Sweigart's pygame book to use PySDL2
- Host: GitHub
- URL: https://github.com/rswinkle/inventwithpython_pysdl2
- Owner: rswinkle
- License: other
- Created: 2016-02-02T23:29:56.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-07-13T21:49:08.000Z (over 4 years ago)
- Last Synced: 2024-11-26T21:05:41.722Z (about 2 months ago)
- Topics: game-development, games, pygame, pysdl2
- Language: Python
- Homepage:
- Size: 10.6 MB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
Invent With Python ported to PySDL2
===================================[Download](https://github.com/rswinkle/inventwithpython_pysdl2)
This is a project aiming to port all the code/games from the book
["Making Games with Python & Pygame"](http://inventwithpython.com/pygame/chapters/) by Al Sweigart
from pygame to PySDL2.## Why?
Well, I'm mostly a C/C++ programmer and I use SDL2 for my games/demos and
I wanted to be able to prototype in python with a library that'd make
it very easy to go from that to C. PySDL2 does have some
great convenience classes/API's in the sdl2.ext, but it's not hard to look
into the source and see what they're actually doing. In addition it has
the sdl2 module, which is a straight 1:1 wrapper of SDL2, as well as
1:1 wrappers of SDL2 libraries like SDL2_mixer, SDL2_gfx and SDL2_ttf.
This design also makes using PySDL2 a great way to learn the SDL2
API and related libraries in general.Another advantage of PySDL2 is that it's public domain/CC0/zlib instead of LGPL.
Look [here](https://pysdl2.readthedocs.org/en/latest/tutorial/pygamers.html)
for more details on the differences between Pygame and PySDL2## Status
I've ported 10 of the projects, though the first 4 hardly count being so simple, or
in the case of tetromino for idiots, only a few lines different from tetromino.
They all (should) work with python 2.7 and python 3.x though I think I may drop
python 2 in the future. They're mostly straight ports not redesigns/reimplementations,
so it's easy to compare/learn (I've left all the pygame versions in the repo). In other
words, I keep as much of his functions/code structure as possible. I have
about 7 more games to go and various improvements in the first half and general maintenance.One other thing to note. I am using a local copy of PySDL2 with 1 change, modifying
SpriteRenderer.render() behavior. I've changed it so that it does *not* call
SDL_RenderPresent/SDL_UpdateWindowSurface. I've created an [issue](https://bitbucket.org/marcusva/py-sdl2/issues/91/spriterenderer-render-behavior-change) to
discuss the design/behavior of that function and why it should change,
but even if the change is merged I'll keep a local copy in the repo for
convenience and because I'll change/add other minor things.## License
All original content/code is copyrighted by Al Sweigart and as you can see
at the top of his py files, is BSD licensed. All my code is public domain,
fallback to MIT/BSD. I may change/expand/formalize the fallback later but
take it, do whatever you want with it, is the gist if public domain doesn't
work obviously.### References/Sources
[http://inventwithpython.com/pygame/chapters/](http://inventwithpython.com/pygame/chapters/)[https://bitbucket.org/marcusva/py-sdl2/overview](https://bitbucket.org/marcusva/py-sdl2/overview)
[https://pysdl2.readthedocs.org/en/latest/#](https://pysdl2.readthedocs.org/en/latest/#)