基于旋转在X Y轴上移动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于旋转在X Y轴上移动相关的知识,希望对你有一定的参考价值。

我试图让角色根据它们的旋转角度移动,但它会像正在向右扫射一样移动。

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)
})
答案

我已经测试了你的代码。这是100%罚款。

要解决扫描问题,您需要编辑MovieClip对象自己的旋转。 假设你的MC面向上(北),使其面向右(东)作为0度的原点。

1)右键单击MC并选择编辑。

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

以上是关于基于旋转在X Y轴上移动的主要内容,如果未能解决你的问题,请参考以下文章

如何限制相机在 Y 轴上的旋转?帮我 §

如何使用按钮在一个轴上停止旋转并在新轴上开始旋转?

openGL(Qt)正确绑定+同时两个旋转

如何在全局轴上旋转图形,而不是局部轴?

SceneKit中的相机旋转

THREE.js如何实现在x,y,z轴上的拖拽