A Unity-like 2D engine in Python using pygame
Project description
To use gamengine2d, You must first use the Engine class
from gamengine2d import Engine, Color, Rectangle, vector2d # import the Engine Rectangle, vector2d, and Color classes
engine = Engine(width=500, height=500, # Create the Engine object that opens a window of height 500, width 500,
name="Unity2D", resizable=True, # name Unity2D, and make the window resizable,
background_color=Color.blue()) # set the background color to blue
# By default, the name is Unity2D, resizable is True, and the background color is Color.black()
rect = Rectangle(pos=vector2d(0, 0), size=vector2d(100, 400), # Create a rectangle at 0, 0, with size 100, 400,
color=Color.red(), rotation=10, visible=True, # and color red, and rotation 10 degrees, and make it visible,
name="MyRect") # and name it MyRect
# By default, the position is 0, 0, size is 40, 40, color is Color.white(), rotation is 0, visible is True, and name is rectangle
engine.add_object(rect) # add the rectangle object to the engine
engine.run(60, dynamic_view=True) # start the engine, and try to run at 60 fps, and dynamic view is True
# dynamic view allows the use to use the mouse wheel to zoom in or out, or left click and drag to pan around.
# by default, fps is 60, and dynamic view is True
To add a script to an object, use attach.
rect.attach("scripts/rectangle.py", engine.context) # attach the script rectangle.py to the rect object with the engine context
Then, in scripts/rectangle.py
class Rectangle: # The class name should be the same as the filename
def __init__(self, obj, context): # get the object, and the engine context
self.obj = obj # assign self.obj to obj
self.context = context # assign self.context to context
def update(self, dt): # the update method is called every frame, and takes dt which is delta time
self.obj.rotation += 10 * dt # rotate the object at 10 degrees per second
self.context.functions.draw_text(text=str(self.obj.rotation), # Draw the current rotation as text
pos=vector2d(400, 300), # at 400, 300
color=Color.red(), # in red
font_size=18) # with font size 18
# By default, font_size is 18
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
gamengine2d-2.3.5.tar.gz
(10.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gamengine2d-2.3.5.tar.gz.
File metadata
- Download URL: gamengine2d-2.3.5.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
581b4cdabd296a76328781cf0b1e040aa4f8b8e3b8ad4bb916602724582db0ea
|
|
| MD5 |
6ddc28c85a88a1ea7985cdaeff93c035
|
|
| BLAKE2b-256 |
63208987c1e1477765414e7a56681c8a58f211d41dfeb376df29544a87b1d2c7
|
File details
Details for the file gamengine2d-2.3.5-py3-none-any.whl.
File metadata
- Download URL: gamengine2d-2.3.5-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dc7d8b62e15b8153e42784b040a00a4c484314d1dd3ad7c6c0d1fc682764156
|
|
| MD5 |
a7a094fdc47cd0d18c78ed631b010e41
|
|
| BLAKE2b-256 |
d663f8cd41db52be1876ffcfe6d3ff8a5c572209bcada47f2f25ea088cba940f
|