Geometry environment for pygame.

# 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


# 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)

# 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.

• point
• segment
• vector
• line
• halfline

But also:

• circle
• rectangle
• square
• polygon
• triangle
• bezier curve
• trajectory

• force
• motion
• body
• polynomial
• perlin noise

• entity
• anatomy
• widget
• manager

# More technical physics objects

• material
• material form
• material circle
• material formcollider

# Enjoy!

## Project details

Uploaded Source
Uploaded Python 3