Handle collisions¶
React to a hit in Lua¶
Connect the collision signal to a method on your script:
function Enemy:onCreate(entity)
self.entity = entity
Component.connect(entity, "onCollisionEnter", entity, "onHit")
end
function Enemy:onHit(selfEntity, other)
log.info("hit by " .. tostring(other))
end
Trigger zones¶
A collider with isTrigger = true reports overlaps without blocking. Use triggers for
pickups, goals, and hit boxes:
Component.addBoxCollider(entity, 32, 32, true) -- isTrigger = true
Component.connect(entity, "onTriggerEnter", entity, "onPickup")
Layers¶
Restrict what collides with what using layers and masks:
Component.setColliderLayer(entity, "Player")
Component.setColliderMask(entity, Layers.bit("Enemy") | Layers.bit("Wall"))
See Engine → Collisions, Lua → Collider, and Lua → Layers.