Consultar Components
Saiba como obter listas de Entities que têm Components em comum, para facilitar a verificação ou atualização delas.
Atualizado
// Defina um System
function PhysicsSystem(dt: number) {
// query por entities que incluam tanto um component Transform quanto um component Physics
for (const [entity] of engine.getEntitiesWith(Transform, Physics)) {
const transform = Transform.getMutable(entity)
const vel = Physics.get(entity).velocity
transform.position.x += vel.x
transform.position.y += vel.y
transform.position.z += vel.z
}
}
// Adicione o system ao engine
engine.addSystem(PhysicsSystem)for (const [entity] of engine.getEntitiesWith(myComponent, myOtherComponent)) {
//...
}for (const [entity] of engine.getEntitiesWith(Transform)) {
//versão somente leitura
const transformReadOnly = Transform.get(entity)
// versão mutável
const transformMutable = Transform.getMutable(entity)
}// retorna referências à entity e ao primeiro component listado
for (const [entity, component1] of engine.getEntitiesWith(
MyCustomComponent1,
MyCustomComponent2
)) {
// iterar sobre a lista de entities
}
// retorna referências à entity e aos dois primeiros components listados
for (const [entity, component1, component2] of engine.getEntitiesWith(
MyCustomComponent1,
MyCustomComponent2
)) {
// iterar sobre a lista de entities
}for (const [entity, transformReadOnly] of engine.getEntitiesWith(Transform)) {
console.log('id da entity: ', entity)
console.log('tem posição : ', transformReadOnly.position)
}