hi,
it’s sure your interpretation is best. here below the snippet. Is my snippet correct ?
local physics = require("physics") physics.start() local objectA=display.newCircle(500,100,10) objectA:setFillColor(1,1,0) physics.addBody( objectA, { density=.5, friction=1, bounce=0.7,shape=pentagonShape } ) objectA:applyForce( 0, 100, objectA.x, objectA.y ) local objectB=display.newCircle(150,100,10) physics.addBody( objectB, { density=.5, friction=1, bounce=0.7,shape=pentagonShape } ) objectB:applyForce( 80, 150, objectB.x, objectB.y ) function getAngle(x1,y1,x2,y2) local deltaY = y2 - y1 local deltaX = x2 - x1 local angleI= math.abs(math.atan2(deltaY, deltaX)) return angleI end local function testPosition (objectA,objectB) local xVelA, yVelA = objectA:getLinearVelocity() local xVelB, yVelB = objectB:getLinearVelocity() print("yVelA",yVelA, "xVelA", xVelA,"yVelB",yVelB,"xVelB", xVelB) print(objectA.x,objectA.y,"positionObjectA") print(objectB.x,objectB.y,"positionObjectB") local angleA = math.abs(math.atan2(yVelA,xVelA)) local angleB = math.abs(math.atan2(yVelB,xVelB)) local angleAtoB=getAngle(objectA.x,objectA.y,objectB.x,objectB.y) local angleBtoA=getAngle(objectB.x,objectB.y,objectA.x,objectA.y) print("angleA", angleA, "angleB", angleB) print("angleAtoB", angleAtoB, "angleBtoA", angleBtoA) if (math.abs(angleA-angleAtoB)) \< (math.abs(angleB-angleBtoA)) then print("objectAhitB") else print("objectBhitA") end end Runtime:addEventListener("enterFrame", function() testPosition(objectA,objectB) end)