A python wrapper for raylib using ctypes
Project description
raylib-python-ctypes
A python wrapper for the greatest graphic library raylib.
Prerequisites
raypyc uses type annotations in its source, so a Python version that supports it is required.
Installing
the fastest way to use raypyc is by using the pip install command:
pip install raypyc
or
python -m pip install raypyc
Using raypyc
using raypyc is really simple, take a look at an example:
"""
raylib [core] example - Basic Window
"""
# Import
# ------------------------------------------------------------------------------------
from raypyc import *
# ------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------
# Program main entry point
# ------------------------------------------------------------------------------------
def main():
# Initialization
# ------------------------------------------------------------------------------------
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 450
init_window(SCREEN_WIDTH, SCREEN_HEIGHT, b"raylib [core] example - basic window")
# TODO: Load resources / Initialize variables at this point
set_target_fps(60) # Set our game to run at 60 frames-per-second
# ------------------------------------------------------------------------------------
# Main game loop
while not window_should_close(): # Detect window close button or ESC key
# Update
# ----------------------------------------------------------------------------------
# TODO: Update variables / Implement example logic at this point
# ----------------------------------------------------------------------------------
# Draw
# ----------------------------------------------------------------------------------
begin_drawing()
clear_background(RAYWHITE)
draw_text(b"Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY)
end_drawing()
# ----------------------------------------------------------------------------------
# De-Initialization
# ----------------------------------------------------------------------------------
# TODO: Unload all loaded resources at this point
close_window() # Close window and OpenGL context
# ----------------------------------------------------------------------------------
# Execute the main function
if __name__ == '__main__':
main()
raylib vs raypyc
Below are the differences in usage between raylib and raypyc.
Enums
All C typeof enums got translated to Python 'constants'. Enums got translated to
Python enums.
Structures
In general, all structures inherit from ctypes.Structure class. At the moment, all the structures have a setters & getter
Contributing
firstly, Contributions of any kind welcome!.
secondly, here are some of the things that contributing on will help this wrapper the most:
- porting examples from c to python(if you can, please follow along with the conventions when porting). (C examples, Python examples)
- fixing(refactoring) my fileGeneration, so it will look neater...
- making the wrapper able to port to more operating systems
- adding support to sound with the library. (make the library wrap sound functions/structures)
- wrapping more c raylib header to this library[^2]
[^2] NOTE: at least for now, all the non-functions wrapper stuff need be implemented in the filesGeneration.py file, and all the functions wrapper stuff need be implemented in the raypyc/init.py
thanks
thanks to raysun5, raylibpy and pyray for their good work, I took all the inspiration (and some code ;) ) from them, so thanks you guys very much. also a big thanks for the people that helped to test and reviewing the library :)!!!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file raypyc-0.1.4.tar.gz.
File metadata
- Download URL: raypyc-0.1.4.tar.gz
- Upload date:
- Size: 822.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0cf3e0aa1225cf89c5801142a167079ca48dec7fcb2c139a3430f2c83a84c01
|
|
| MD5 |
e8ef6e72e6baf57ee45ca9e16437c529
|
|
| BLAKE2b-256 |
5f11fdb84d85cdd7c178fe93ceb148d38f8e7f82c82bc820d7f5161376105911
|
File details
Details for the file raypyc-0.1.4-py3-none-any.whl.
File metadata
- Download URL: raypyc-0.1.4-py3-none-any.whl
- Upload date:
- Size: 827.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44ca554d14dca67008cb9048d12eff1eed28fad325e0dbedf97a623c75ac8a23
|
|
| MD5 |
80f687eccfab69698d34e99bb1239fd5
|
|
| BLAKE2b-256 |
0a6e58c6f5fec03643fbdb991b5619e2bbbd04ebffd906210e6519307960840f
|