Geometry environment for pygame.
Project description
Description
This is a framework based on pygame that allows an easier process for making games. This is so much more than a tool kit. Tested in pygame2 not in pygame1.
Installation
pip install pygame-context
Quick examples:
Draw some moving Points and a Circle
from pygame_geometry.abstract import Point, Circle
from pygame_geometry.context import Context
from pygame_geometry import colors
context = Context(name="title") # create a context similar to a pygame surface
p1 = Point(2,2)
p2 = Point(3,2, color=colors.BLUE)
c = Circle(0, -1, radius=2, color=colors.RED)
# main game loop
while context.open:
# clear the window
context.clear()
# check quit event (empty pygame event buffer by doing so)
context.check()
# move and zoom around the scene
context.control()
# update objects
p1.rotate(0.01, p2)
c.x += 0.01
# show objects
p1.show(context)
p2.show(context)
c.show(context)
# flip the screen
context.flip()
Draw Bezier Curves
from pygame_geometry.context import Surface
from pygame_geometry.curves import Trajectory, BezierCurve
from pygame_geometry.abstract import Point
from pygame_geometry import colors
# create objects
surface=Surface(name="Curves demonstration")
l=10
points=[Point(2*x,random.randint(-5,5)) for x in range(l)]
t=Trajectory(points,segment_color=colors.GREEN)
b=BezierCurve(points,segment_color=colors.RED)
n=0
ncp=50 #number construction points
while surface.open:
# surface stuff
surface.check()
surface.clear()
surface.control()
surface.show() # show a math grid in background
# update
Point.turnPoints([1/1000 for i in range(l)],points)
n=(n+1)%(ncp+1)
b.showConstruction(surface,n/ncp)
p1=b(n/ncp)
p2=Point(*t(n/ncp))
# show
t.show(surface)
b.show(surface)
p1.show(surface,color=colors.YELLOW,radius=0.1,fill=True)
p2.show(surface,color=colors.YELLOW,radius=0.1,fill=True)
# flip
surface.flip()
Controls
- Space: Switch to next mode.
- Enter: Go back to the center.
- Up/Down/Right/Left Arrow: Move arround.
- Right/Left Shift: Zoom in or out.
- Quit/Escape: Quit.
Geometry objects
Geometry components added:
- point
- segment
- vector
- line
- halfline
But also:
- circle
- rectangle
- square
- polygon
- triangle
- bezier curve
- trajectory
Physics/Maths objects
- force
- motion
- body
- polynomial
- perlin noise
Game objects
- entity
- anatomy
- widget
- menu
- manager
More technical physics objects
- material
- material form
- material circle
- material formcollider
Enjoy!
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
pygame_geometry-0.0.8.tar.gz
(106.8 kB
view hashes)
Built Distribution
Close
Hashes for pygame_geometry-0.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4af47253ee520a4b183004690e59aa65e55adb52752633fca7ab61b183a65752 |
|
MD5 | c569c25db07a4e11a1952098445ac297 |
|
BLAKE2b-256 | 1c2673576ad9310ff5c34060d8f5d6bcaf8dd17ce3fd39be7a039738bcab2820 |