Перемещение по оси X Y на основе вращения - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь заставить персонажа двигаться в зависимости от угла его поворота, однако он движется так, будто движется вправо.

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 голосов
/ 10 сентября 2018

Я проверил ваш код. Это на 100% хорошо.

Чтобы решить проблему стрельбы, вам нужно отредактировать собственное вращение объекта MovieClip.
Предполагая, что ваш MC направлен вверх (север), установите его направо (восток) как начало координат 0 градусов.

1) Щелкните правой кнопкой мыши MC и выберите edit .

2) В режиме редактирования ... Выберите все и (а) поверните его на 90 градусов вправо, (б) выровняйте (было ранее) дно с точкой +. Проверьте, работает ли он как ожидалось

image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...