需要围绕固定点移动精灵。需要注意的是,运动应该从精灵的“当前位置”开始。
偏移角度,即使用幻数,并没有真正做到这一点,因为如果精灵和固定点之间的距离发生变化,它会有所不同。
参考图片:

本地 block1Texture = Texture.new("block1.png",true)
本地块1 = Bitmap.new(block1Texture)
block1:setAnchorPoint(0.5,0.5)
阶段:addChild(block1)
block1:setPosition(50,50)
本地 block2Texture = Texture.new("block2.png",true)
本地块2 = Bitmap.new(block2Texture)
block2:setAnchorPoint(0.5,0.5)
阶段:addChild(block2)
block2:setPosition(350,450)
本地 block3Texture = Texture.new("block3.png",true)
本地块3 = Bitmap.new(block3Texture)
block3:setAnchorPoint(0.5,0.5)
阶段:addChild(block3)
block3:setPosition(300,700)
本地计时器 = Timer.new(500, 1)
本地rotateAroundBlock = block2
函数 getCharAngleFromRope(startX, startY, targetX, targetY)
本地 xdiff = targetX - startX
本地 ydiff = targetY - startY
本地 ang = math.atan2( ydiff, xdiff )
ang = math.deg(ang) + 90.0
如果 ang =application:getDeviceWidth()) 那么
--打印(“1”)
--px = block3:getX()
结尾
如果(py=应用程序:getContentHeight())然后
--打印(“2”)
--py = block3:getY()
--px = block3:getX()
结尾
block3:setPosition(px,py)
结尾
dist = math.sqrt((rotateAroundBlock:getX()-block3:getX())^2+(rotateAroundBlock:getY()-block3:getY())^2)
角度 = getCharAngleFromRope(block3:getX(),block3:getY(),rotateAroundBlock:getX(),rotateAroundBlock:getY())
计时器:addEventListener(Event.TIMER_COMPLETE,onTimerComplete)
函数 startMoving()
计时器:开始()
结尾
阶段:addEventListener(Event.TOUCHES_BEGIN,startMoving)