Skip to main content

A library of classes and helper functions to support game development in Pygame

Project description

PygamePal

A library of classes and functions to support game development in Pygame

Usage

  • pip install pygamepal

  • Full example, using all pygamepal classes

Contents

Game (create a game with minimal setup) -- Template // Example

self.size = (x, y)
self.caption = 'text'
self.icon = pygame.image.load('imageURL')
self.fps = x
self.gameTime

self.init()
self.update(gameTime)
self.draw()
self.quit()

Input -- Example

# create new instance
input = pygamepal.Input(longPressDuration=60)

# update() must be called once per frame
input.update(deltaTime=1)
input.isKeyDown(keycode)
input.isKeyPressed(keycode)
input.isKeyReleased(keycode)
input.getKeyDownDuration(keycode)
input.isKeyLongDown(keycode)
input.isKeyLongPressed(keycode)
input.getKeyLongPressPercentage(keycode)

SpriteImage -- Example

# create new instance
spriteImage = pygamepal.spriteImage()

# add one or more sprites, associated with a state
spriteImage.addTextures(firstTexture, *moreTextures, state=None, animationDelay=12, loop=True, hFlip=False, vFlip=False)

# update() must be called once per frame
spriteImage.update()

# draw the current image/animation frame
spriteImage.draw()

# change the current image/animation state
# (does not need to be called for sprite with single state)
spriteImage.setState(state)

# resets the current animation
spriteImage.reset()

spriteImage.pause

Camera -- Example

# creates a new camera instance
camera = pygamepal.Camera(position=(0, 0), size=(640, 480), target=(0, 0), zoom=1, backgroundColour='gray30', borderColour='black', borderThickness=2, clamp=False, clampRect=(0, 0, 1000, 1000), followDelay=0)

# update() must be called once per frame
camera.update(deltaTime=1)

# draws surface to the destinationSurface, using camera attributes
camera.draw(surface, destinationSurface)

Utility functions

# draws text with minimal required parameters
drawText(screen, text, x, y, font=None, antialias=True, color=White, background=None)
# minimal example:
drawText(screen, 'Hello, world!')

# returns a list of sub-textures from a large spritesheet/texture
# the list has the same dimensions as the original texture, but
# can be flattened using flatten(2dList).
splitTexture(texture, newTextureWidth, newTextureHeight)
# simple example, splitting a single 96x32 spritesheet into 4 separate textures:
textureList = splitTexture(texture, 32, 32)
firstTexture = textureList[0][0] # or firstTexture = flatten(textureList)[0]

# flattens a 2d list into a single list
newList = flatten(2dList)
# see above for example

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

pygamepal-0.1.2.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

pygamepal-0.1.2-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file pygamepal-0.1.2.tar.gz.

File metadata

  • Download URL: pygamepal-0.1.2.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for pygamepal-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6706cbf9a5c295bd506e18899949f911aae3f958b06a130aaf1113e3d0e31bf7
MD5 a762d0fbfda2859c38cfa5bf1cb9165c
BLAKE2b-256 942033dd0e7c0147b30c9a1caa9ea330ab91cc06a6a9a26e64dd28ede80f9294

See more details on using hashes here.

File details

Details for the file pygamepal-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pygamepal-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for pygamepal-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 153a364b08b2883463ae178be42403e251b6c61d0a03e527c19002f8a9760ee5
MD5 f3e0ffe9b3cc561249c7e21a4f795161
BLAKE2b-256 56e5f3aedd566132402b7396559268c62fc2e62ae842105c20b4e58157274232

See more details on using hashes here.

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