0

需要围绕固定点移动精灵。需要注意的是,运动应该从精灵的“当前位置”开始。

偏移角度,即使用幻数,并没有真正做到这一点,因为如果精灵和固定点之间的距离发生变化,它会有所不同。

参考图片:

在此处输入图像描述

    本地 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)

4

1 回答 1

0

解决了。对于遇到此问题的其他人,对于 math.cos 和 math.sin,参数值需要以弧度而不是度数表示。奇迹般有效。

于 2015-03-02T08:15:53.800 回答