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-1.0.3.tar.gz
(9.1 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-1.0.3.tar.gz.
File metadata
- Download URL: gamengine2d-1.0.3.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9749d4430815ff921a1b489313da6614bbcfe70c6dd5e87a0b430c8f71820e45
|
|
| MD5 |
eccc493764b1a715f480b13a1541e5a6
|
|
| BLAKE2b-256 |
c032507584a1b44c222f33da0a20fdc5ea6555740174f6f6dbef73be767f996e
|
File details
Details for the file gamengine2d-1.0.3-py3-none-any.whl.
File metadata
- Download URL: gamengine2d-1.0.3-py3-none-any.whl
- Upload date:
- Size: 9.1 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 |
33a5e6e4190b46fa9fe186c5d3e8c3cd8ed93b8c97a25df362a27c2af1e48b81
|
|
| MD5 |
b944307b50d4b7c77edb1fd5a91c2ebe
|
|
| BLAKE2b-256 |
58de2e84cc2c5a5a59d2efe2e0f44ef2b8d43b5cf9df8f6954e42844c9dfdd6c
|