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.0.tar.gz
(3.2 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.0.tar.gz.
File metadata
- Download URL: gamengine2d-1.0.0.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
141c734ee6e2a02d161dbdb6507ddbdaf4c307295a266b2a03607db4be0ddde7
|
|
| MD5 |
49367f36fd0ba797e75b0f21c6124a1f
|
|
| BLAKE2b-256 |
9f5464358bce137c4e4e0189672b5b1994554cf846edcb3e2ef878046f2a9fc9
|
File details
Details for the file gamengine2d-1.0.0-py3-none-any.whl.
File metadata
- Download URL: gamengine2d-1.0.0-py3-none-any.whl
- Upload date:
- Size: 3.6 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 |
ae3c3f03eabfd411a51654d5a3b22f574f654d845fc8bf2abd067239281ab263
|
|
| MD5 |
14e80bfb7e7b9f8cd1844b3819e6a24e
|
|
| BLAKE2b-256 |
6741900972d2b832ca1286c71bd4c76f6febe6bfff87281579554270cb7a11fe
|