How does the collisions actually work in codea? I got some circles that need to call a function as long as they are touching, now the collision detection work 90% of the time when I expect it to. It seems like codea stops recognizing contact points after the bodies have been stationary/touching at the same point after a while(I have set sleepingAllowed to false)
Code
if contact.bodyA ~= nil and contact.bodyB ~= nil then
if bodyAinfo[1] == "bot" then
if bodyBinfo[1] == "player" then
for j=1,#Bots do
local info = split(Bots[j]:getBody().info,":")
if bodyAinfo[2] == info[2] then
if contact.state == BEGAN or contact.state == PERSIST then
Player:damage(Bots[j]:getDamage())
break
elseif contact.state == ENDED then
break
end
end
end
end
end
The Bots[] is an array of classes containing the body of the specified bot. I use the userdata on each body to identify it easier with “bot:id” where id is the position in the Bots array
Sorry if Im not clear on what the problem is but its kinda hard to explain