Difference between revisions of "World:setCallbacks"

m (See Also: Linked to a callback tutorial)
(add note about crashing bug, link to page with workaround)
Line 1: Line 1:
 
 
Set functions to be called when shapes collide.  
 
Set functions to be called when shapes collide.  
  
Line 6: Line 5:
  
 
When called, each function will be passed three arguments. The first two arguments (one for each shape) will pass data that has been set with [[Shape:setData]] (or nil). The third argument passes the [[Contact]] between the two shapes.
 
When called, each function will be passed three arguments. The first two arguments (one for each shape) will pass data that has been set with [[Shape:setData]] (or nil). The third argument passes the [[Contact]] between the two shapes.
 +
 +
'''Note:''' Using [[Shape:destroy]] when there is an active remove callback can lead to a crash. It is possible to [[Remove_Workaround|work around]] this issue by only destroying object that are not in active contact with anything.
  
 
== Function ==
 
== Function ==

Revision as of 17:51, 13 March 2010

Set functions to be called when shapes collide.

Four Lua functions can be given as arguments. The value nil can be given for events that are uninteresting.


When called, each function will be passed three arguments. The first two arguments (one for each shape) will pass data that has been set with Shape:setData (or nil). The third argument passes the Contact between the two shapes.

Note: Using Shape:destroy when there is an active remove callback can lead to a crash. It is possible to work around this issue by only destroying object that are not in active contact with anything.

Function

Synopsis

World:setCallbacks( add, persist, remove, result )

Arguments

function add
Called when two shapes first collide.
function persist
Called each frame, if collision lasts more than 1 frame.
function remove
Called when two shapes finish colliding.
function result
No idea. Never seems to be called...

Returns

Nothing.

See Also