i’ve made you a simple code so you can learn from:
local rand=math.random local numberObjects=10 local randomTarget=rand(1,numberObjects) local trans local function createObject(posXIn, posYIn, sizeXIn, sizeYIn) local posX=posXIn local posY=posYIn local sizeX=sizeXIn local sizeY=sizeYIn local obj=display.newRect(posX,posY,sizeX,sizeY) obj.id="" return obj end local multiObjects={} for i=1, numberObjects do multiObjects[i]=createObject(rand(1,display.contentWidth),rand(1,display.contentHeight),rand(50,100),rand(50,100)) multiObjects[i]:setFillColor(rand(),rand(),rand()) if i==numberObjects then multiObjects[i].id="target" multiObjects[i]:setFillColor(1,0,0) end end local player=createObject(0,0,50,50) player:setFillColor(1,0,0) local function removeTrans() if trans then transition.cancel(trans) trans=nil end end local function moveToTarget() for i=1, numberObjects do if multiObjects[i].id=="target" then local trans=transition.to(player,{time=1000,x=multiObjects[i].x, y=multiObjects[i].y,onComplete=removeTrans}) end end end timer.performWithDelay(1000,moveToTarget,1)
after 1s the red square goes after the other red rectangle in the screen (the target).