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.4.0.tar.gz
(11.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-2.4.0.tar.gz.
File metadata
- Download URL: gamengine2d-2.4.0.tar.gz
- Upload date:
- Size: 11.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 |
b22369c0eef610430dda3b35630fa723a9bc9f213f3368ec90782fae4020f8c8
|
|
| MD5 |
4a9330242bd8b6245974818d8ff6e45a
|
|
| BLAKE2b-256 |
2c7cdb0b4ffe61ad715f551a7dacc2f6cf466389682747e6406d0d3e92e45b0a
|
File details
Details for the file gamengine2d-2.4.0-py3-none-any.whl.
File metadata
- Download URL: gamengine2d-2.4.0-py3-none-any.whl
- Upload date:
- Size: 11.4 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 |
aff2ea46a8fdad79b1d1cf828be4b22b0a4147195f160e431d0f4ced6b09254b
|
|
| MD5 |
0f805016673fd162bb74b46e513d8f2c
|
|
| BLAKE2b-256 |
78019419ca3dd2b10a864f411583fdff00992a22d9604fd566bb2c0bf3995675
|