print("test1")
timer.performWithDelay(10000, addRB(CurrentObject, r))
print("test2")
end
.
.
.
function addRB(ObjToChange, radius)
physics.addBody( ObjToChange, "static", {radius=radius, isSensor = true })
end
I call the addbody on collision but I add performWithDelay like it says we should. It gave these errors ayways:
23:47:14.206 test1
23:47:14.206 ERROR: C:\Users\semih\Documents\Corona Projects\Hope\main.lua:89: physics.addBody() cannot be called when the world is locked and in the middle of number crunching, such as during a collision event
23:47:14.206 test2
23:47:14.206 test1
23:47:14.206 ERROR: C:\Users\semih\Documents\Corona Projects\Hope\main.lua:89: physics.addBody() cannot be called when the world is locked and in the middle of number crunching, such as during a collision event
23:47:14.206 test2
23:47:14.206 test1
23:47:14.206 ERROR: C:\Users\semih\Documents\Corona Projects\Hope\main.lua:89: physics.addBody() cannot be called when the world is locked and in the middle of number crunching, such as during a collision event
23:47:14.206 test2
23:47:14.206 test1
23:47:14.206 ERROR: C:\Users\semih\Documents\Corona Projects\Hope\main.lua:89: physics.addBody() cannot be called when the world is locked and in the middle of number crunching, such as during a collision event
23:47:14.206 test2
.
.
.
The way timer.performWithDelay works is by passing the function as a variable. The way your passing your function is actually calling it right away, and I can see why you did it that way because you have parameters in your function. In your case, it should be passed inside an anonymous function like so:
The other issue is, I don’t recall whether you “shouldn’t” or “can’t” do physics body changes inside a collision listener, but you should definitely do it outside the collision listener.
EDIT:
If you’re calling the timer inside your collision listener then should be OK, as long as the object is not colliding 10 seconds later.
You can also just use timer.performWithDelay( 1, .... ) instead of 100. This just means the function gets called the very next frame. There’s no need to wait a certain amount of time. The only physics engine related limitation is that you can’t destroy a physics body during the collision event itself, so any other time works (and the sooner the better).