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