Dados Mutáveis
Aprenda como lidar com dados somente leitura e mutáveis de componentes
// buscar uma versão somente leitura (imutável)
const immutableTransform = Transform.get(myEntity)
// o seguinte NÃO funciona:
// immutableTransform.position.y = 2
const mutableTransform = Transform.getMutable(myEntity)
// a linha a seguir ALTERA a posição da entidade
mutableTransform.position.y = 2// altura máxima codificada
const MAX_HEIGHT = 10
// Defina o sistema
function HeightLimitSystem(dt: number) {
// iterar sobre todas as entidades que têm um componente Transform
for (const [entity] of engine.getEntitiesWith(Transform)) {
// obter valores somente leitura
const currentHeight = Transform.get(entity).position.y
// comparar valores
if (currentHeight > MAX_HEIGHT) {
// buscar versão mutável para fazer uma alteração
const mutableTransform = Transform.getMutable(entity)
// alterar transform
mutableTransform.position.y = MAX_HEIGHT
}
}
}
// Adicionar sistema ao engine
engine.addSystem(HeightLimitSystem)Atualizado