A neat little thing... with nightly updates
Project description
r3frame2 is a collection of modules, classes and utilities designed to bring structure to your next project, without hindrance.
Providing a robust and extensible development framework for many kinds of multimedia applications. Leveraging pygame-ce, you get the simplicity of python minus the hair-pulling.
Installation
Install r3frame via pip:
pip install r3frame2
r3 Playground
Once installed, you can run the playground demo by typing:
r3playground
This will launch an interactive example that is actively maintained and used to showcase r3frame's capabilities.
Quick Start
Getting started is as simple as the following code:
import r3frame2 as r3
class MyScene(r3.app.R3scene):
def __init__(self, app):
# to begin, lets configure the world in this scene
# for we pass it an instance of a desired partitioning system configuration
super().__init__(app, r3.resource.R3worldConfig(r3.resource.R3gridConfig()))
def init(self):
# load an R3entity
self.database.load_entity("player", [100, 100])
# query said entity and toggle physics on it
self.player = self.database.query_entity("player")
self.physics.toggle_transform(self.player)
# insert our entities into our world's partition
self.world.partition.insert(self.player)
def exit(self): pass
def events(self):
# handle movement along the x-axis
if self.app.events.key_held(self.app.keyboard.A):
self.physics.set_velocity(self.player, dx=-100)
if self.app.events.key_held(self.app.keyboard.D):
self.physics.set_velocity(self.player, dx=100)
# handle movement along the y-axis
if self.app.events.key_held(self.app.keyboard.W):
self.physics.set_velocity(self.player, dy=-100)
if self.app.events.key_held(self.app.keyboard.S):
self.physics.set_velocity(self.player, dy=100)
def update(self, dt: float): pass
def render(self):
# queue a render call for our player (0 = Opaque Render Phase)
self.renderer.queue(r3.resource.R3renderCall(0, self.player.pos, self.player.surface))
class MyApp(r3.app.R3app):
def __init__(self):
super().__init__(title="MyApp")
def init(self):
self.add_scene("playground", MyScene)
self.set_scene("playground")
def exit(self): pass
MyApp().run()
Contributors
Contributing
Want to help improve r3frame? Feel free to contribute by submitting issues, suggesting features, or making pull requests!
License
r3frame is open-source under the MIT License.
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
r3frame2-0.0.7.post5.tar.gz
(37.3 kB
view details)
File details
Details for the file r3frame2-0.0.7.post5.tar.gz.
File metadata
- Download URL: r3frame2-0.0.7.post5.tar.gz
- Upload date:
- Size: 37.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9bc7fbff34977511f94148361c2c89f51dc633100815e53f72031b44adcc270
|
|
| MD5 |
98b26fa2347d4fb4ab61bd889c153c4d
|
|
| BLAKE2b-256 |
de67aa6b8c2452498ce74297ea586d2e49949971bae8d8921d08ef3627f60f4d
|