Skip to main content

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

Watch the video

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

Watch the video

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


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.2.tar.gz (107.7 kB view hashes)

Uploaded Source

Built Distribution

pygame_geometry-0.1.2-py3-none-any.whl (131.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page