基于旋转在X Y轴上移动

时间:2018-09-09 23:10:58

标签: actionscript-3

我正在尝试根据角色的旋转角度来移动角色,但是它的移动就像是向右滑动一样。

import flash.events.KeyboardEvent;
import flash.events.MouseEvent;

lilman.rotation = 0
var personRotation:Number = lilman.rotation * (Math.PI / 180)

stage.addEventListener(KeyboardEvent.KEY_DOWN, function(e:KeyboardEvent)
{
    if(e.keyCode==65)
    {
        lilman.rotation -= 5
    }
    else if(e.keyCode==68)
    {
        lilman.rotation += 5
    }
})

stage.addEventListener(MouseEvent.MOUSE_DOWN, function()
{
    personRotation = lilman.rotation * (Math.PI / 180)

    lilman.x += Math.cos(personRotation)*5
    lilman.y += Math.sin(personRotation)*5

    trace(Math.cos(personRotation) +", "+ Math.sin(personRotation) +", "+ personRotation +", "+ lilman.rotation)
})

1 个答案:

答案 0 :(得分:0)

我已经测试了您的代码。 100%罚款。

要解决过渡问题,您需要编辑MovieClip对象自己的旋转。
假设您的MC朝上(向北),则以0度的原点朝右(向东)。

1)右键单击MC,然后选择编辑

2)在编辑模式下...选择所有内容,然后(a)将其向右旋转90度,(b)将(以前)的底部对准点+。测试它是否按预期工作