π¦
Overview of the
Entitymodule in JarEngine.
πΉ Overview
Entity is a JarEngine module responsible for ECS entity and components.
It provides:
- Audios components
- Graphics components
- Others components
- Physics components
- Transforms components
- Entity
πΉ Contents
| Class | Description |
|---|---|
β’>JEEntity<β’π |
Entity (component holder) |
| Component | Description |
|---|---|
β’>JEMusicComponent<β’π |
Music (resource) |
β’>JESoundComponent<β’π |
Sound (resource) |
β’>JEFontComponent<β’π |
Font (resource) |
β’>JETextComponent<β’π |
Text (string) |
β’>JETextureComponent<β’π |
Texture (resource) |
β’>JEColorComponent<β’π |
Color (JEColor) |
β’>JEOutlineComponent<β’π |
Outline (JEColor and size) |
β’>JEVisibilityComponent<β’π |
Visibility (JEBool) |
β’>JELayerComponent<β’π |
Layer (integer) |
β’>JEFlipComponent<β’π |
Flip (tuple: JEBool, JEBool) |
β’>JEGroupComponent<β’π |
Group (JEInternOwnership) |
β’>JEAccelerationComponent<β’π |
Acceleration (JEVector2D) |
β’>JEMassComponent<β’π |
Mass (floating point) |
β’>JEPositionComponent<β’π |
Position (JEVector2D) |
β’>JEVelocityComponent<β’π |
Velocity (JEVector2D) |
β’>JESizeComponent<β’π |
Size (JEVector2D) |
β’>JERotationComponent<β’π |
Rotation (integer) |
πΉ Usage
from jarengine import Entity
# Create an entity
player = Entity.JEEntity(name="Player")
# Add components to define its properties
Entity.Transforms.JEPositionComponent(
player,
(100, 200)
)
Entity.Transforms.JEVelocityComponent(
player,
(5, 0)
)
Entity.Transforms.JESizeComponent(
player,
(20, 20)
)
Entity.Graphics.JEColorComponent(
player,
(255, 255, 255, 255)
)
# Components automatically add related helpers to the entity
player.set_position((150, 180))
player.set_velocity((10, 0))
print(player.get_position())
print(player.get_velocity())
An entity has been created as a white rectangle of 20 by 20.
πΉ Notes
Things to know when using this module:
- Entity alone doesnβt do anything, components are required.
- Components such as group makes the entity a holder of other entity.
- ECS has been optimized by me (and IA) for faster computation, but it is still a layer on top of PyGame, and in Python. So it may be slower than any other engine.