Circle collision path

All

Trying to figure out how I can set the correct path when to balls/circles collide

In the below example you can see that the two circles collides but the red circle will only reverse it path and not follow the natural collision path when to circles collides. Does anyone have a clue how to get this to work ?
[lua]local physics = require( “physics” )
physics.start()
physics.setGravity(0,9.8)

–collision
local function onLocalCollision( self, event )
if ( event.phase == “began” ) then
xdirection = xdirection * -1;
ydirection = ydirection * -1;
end
end

Bigcircle = display.newCircle(100, 100, 50)
Bigcircle:setFillColor(100,0,100)
physics.addBody(Bigcircle,{bounce=0.3,radius=Bigcircle.width/2})

local floor = display.newRect(0,display.contentHeight,display.contentWidth,1)
physics.addBody(floor,“static”,{bounce=0.5})

local lwall = display.newRect(0,0,1,display.contentHeight)
physics.addBody(lwall,“static”,{bounce=0.1})

local rwall = display.newRect(display.contentWidth,0,1,display.contentHeight)
physics.addBody(rwall,“static”,{bounce=0.1})
xdirection,ydirection = 1,1
local xpos,ypos = display.contentWidth*0.5,display.contentHeight*0.5
local circle = display.newCircle( xpos, ypos, 20 );
circle:setFillColor(255,0,0,255);
physics.addBody(circle,“static”,{radius=circle.width/2})
circle.collision = onLocalCollision
circle:addEventListener( “collision”,circle)

function animate(event)
xpos = xpos + ( 2.8 * xdirection );
ypos = ypos + ( 2.2 * ydirection );

if (xpos > display.contentWidth - 20 or xpos < 20) then
xdirection = xdirection * -1;
end
if (ypos > display.contentHeight - 20 or ypos < 20) then
ydirection = ydirection * -1;
end

circle:translate( xpos - circle.x, ypos - circle.y)
end

Runtime:addEventListener( “enterFrame”, animate );[/lua] [import]uid: 31201 topic_id: 6114 reply_id: 306114[/import]