Entities
Introduction
Une entité en soi n'a pas de comportement ni d'apparence ; elle agit simplement comme un conteneur auquel des composants peuvent être attachés.Création d'une entité
Le code suivant montre comment créer une nouvelle entité sans aucun composant
Exemple
import * as ecs from '@8thwall/ecs'
const eid = world.createEntity()
Suppression d'une entité
Le code suivant montre comment supprimer une entité existante en fonction de son identifiant :
Exemple
import * as ecs from '@8thwall/ecs'
world.deleteEntity(eid)
Ajout de composants à une entité
Le code suivant montre comment ajouter un composant intégré à une entité au moment de l'exécution.
Exemple
const box = world.createEntity()
ecs.BoxGeometry.set(world, box, {
width : 1,
height : 1,
depth : 1,
})
ecs.Material.set(world, box, {
r : 255,
g : 255,
b : 255,
})
Créer et modifier des relations
Le code suivant montre comment utiliser les méthodes d'aide intégrées pour créer ou modifier les relations entre les entités.
Exemple
// Les entités sont automatiquement des enfants de World.
const foo = world.createEntity()
const bar = world.createEntity()
// Faites de foo un enfant de bar.
world.setParent(foo, bar)
// Récupère le parent de bar (renvoie un eid où <= 0 est indéfini)
world.getParent(bar)
// Récupère les enfants de foo (renvoie un Generator)
world.getChildren(foo)
Fonctions d'assistance
Il existe un certain nombre de fonctions d'aide pour interagir avec la transformation d'une entité.
conseil
Les entités sont positionnées par rapport à leur parent. La fonction getWorldTransform()
récupère la transformation de l'objet dans l'espace mondial, en tenant compte de toutes les transformations des parents.
world.setScale(eid, 1, 1, 1)
world.setPosition(eid, 1, 1, 1)
world.setQuaternion(eid, 0, 0, 0, 1)
world.normalizeQuaternion(eid)
const tempMatrix = ecs.math.mat4.i()
world.getWorldTransform(eid1, tempMatrix)
world.setTransform(eid2, tempMatrix)