Representing Entities
Grafyte organizes gameplay entities around scenes and objects.
Scenes
Create a scene with app.make_new_scene():
import grafyte
app = grafyte.Application("Entities Example", (800, 600))
scene = app.make_new_scene()
Objects
Spawn a rectangle with scene.spawn_object(position, size):
player = scene.spawn_object((0, 0), (20, 20))
player.color = (0, 255, 0)
Objects expose a small set of mutable properties:
posfor positionscalefor size scalingrotfor rotationcolorfor non-textured objectstintfor textured objects
Example movement:
while not app.should_close():
player.pos += (25 * app.dt, 0)
app.render()
Coordinate System
The point (0, 0) is at the center of the world view.
X increases to the right
Y increases upward
Grafyte keeps the visible world height fixed at 200 units. The visible width changes with the window aspect ratio, which lets the window resize without changing the apparent scale of the world.
Layers
Use the layer argument to control draw order:
background = scene.spawn_object((0, 0), (200, 200), layer=0)
player = scene.spawn_object((0, 0), (20, 20), layer=1)
Higher layers render in front of lower ones.
Text Objects
Use spawn_text_object for text placed inside the world:
title = scene.spawn_text_object((0, 60), "Grafyte", scale=18)
title.color = (255, 255, 255)