Skip to main content

A Pythonic API wrapper for SDL2.

Project description

sdl2hl is a Python package providing a friendly, Pythonic wrapper around the SDL2 library. sdl2hl calls SDL2 using Kevin Howell’s sdl2-cffi package (which can be found here: https://github.com/kahowell/sdl2-cffi). sdl2hl maintains sdl2-cffi’s advantages of using cffi and being zlib licensed, while providing an API that hides the gruesome details of the FFI layer from the user.

Goals

The goals of sdl2hl are:

  • Provide a straightforward, Pythonic API on top of the functionality provided by SDL2.

  • Provide good documentation, independent of the SDL2 documentation.

  • Cover as much of the SDL2 API as possible, excluding elements of the API that do not provide value to a program written in Python (e.g. thread management and shared object loading).

An explicit anti-goal of sdl2hl is providing any significant functionality beyond that which is provided by SDL2. sdl2hl may be a reasonable foundation of a larger game library, but it will not become one itself.

Versioning

sdl2hl versioning follows the semver 2.0 standard. Once sdl2hl hits 1.0, every effort will be made to prevent backwards incompatible changes. If a backwards incompatible change absolutely cannot be avoided, sdl2hl’s major version will be incremented. However, since sdl2hl has not hit 1.0, for now there may be breaking changes at any time. Sorry.

License

sdl2hl is licensed under the same zlib license as SDL2 and sdl2-cffi. More details can be found in the LICENSE.txt file that (should) be found in this distribution.

Contributions

Contributions are welcome! If you encounter a bug or have a request or suggestion please open an issue on github at https://github.com/jdoda/sdl2hl/issues . If you want to submit a patch, please open a github pull request at https://github.com/jdoda/sdl2hl/pulls .

Example

import sys

import sdl2hl


BACKGROUND_COLOR = (0,0,0,255)
AVATAR_COLOR = (255,0,0,255)


sdl2hl.init()
window = sdl2hl.Window()
renderer = sdl2hl.Renderer(window)
avatar = sdl2hl.Rect(w=64, h=64)

while True:
    for event in sdl2hl.events.poll():
        if event.type == sdl2hl.QUIT:
            sdl2hl.quit()
            sys.exit()
        elif event.type == sdl2hl.EventType.keydown and event.keycode == sdl2hl.KeyCode.left:
            avatar.x -= 1
        elif event.type == sdl2hl.EventType.keydown and event.keycode == sdl2hl.KeyCode.right:
            avatar.x += 1
        elif event.type == sdl2hl.EventType.keydown and event.keycode == sdl2hl.KeyCode.up:
            avatar.y -= 1
        elif event.type == sdl2hl.EventType.keydown and event.keycode == sdl2hl.KeyCode.down:
            avatar.y += 1

    renderer.draw_color = BACKGROUND_COLOR
    renderer.clear()
    renderer.draw_color = AVATAR_COLOR
    renderer.fill_rect(avatar)

    renderer.present()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sdl2hl-0.2.1.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

sdl2hl-0.2.1-py2.py3-none-any.whl (21.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file sdl2hl-0.2.1.tar.gz.

File metadata

  • Download URL: sdl2hl-0.2.1.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for sdl2hl-0.2.1.tar.gz
Algorithm Hash digest
SHA256 9e040613dd74835d32c4b6c4a220ca7342a98f6bd4ad6b764ee6b9b832093b66
MD5 78fa566b43f22dbe6061da6fb7082009
BLAKE2b-256 30a2ec2b63a1632c02e3278a1e4284a458e8c66875c3a70c06076a9796d71b62

See more details on using hashes here.

File details

Details for the file sdl2hl-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for sdl2hl-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4985a085785900be424817414aa9a2cb8d486c15fd870f8cc72973aefdbcfdf4
MD5 2622bcae50816b64371b7cbd69a0598e
BLAKE2b-256 cb145583e3077565807d2893d1d94097b9ffd63c8009c8d1c4b3f9649f828933

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page