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-geometry
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
import random
# 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.1.1.tar.gz
(107.7 kB
view hashes)
Built Distribution
Close
Hashes for pygame_geometry-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce387bb9196e70467e8e4592e6c670340fd9daf5e3fd939951adf84c33393eb9 |
|
MD5 | 7a201e58b50bde426770e5cf61d1bc23 |
|
BLAKE2b-256 | 6b49626c1d7122f97274448f33191982fb9193e6e80e9901fd3f67b30ce3f306 |