ActionScript 3 вращения - PullRequest
       0

ActionScript 3 вращения

0 голосов
/ 13 февраля 2012

Вот мой вопрос:

У меня есть мувиклип, который называется player, и я хочу получить его вращение;

player.rotation=0;
player.rotation-=90;
trace(player.rotation);//this traces -90, not 270

Я хотел бы знать, почему он не говорит, что вращение составляет 270, потому что 0 это как 360 и когда вы поворачиваете на 90 градусов влево, это должно быть 270;

Я спрашиваю об этом, потому что это вызывает проблемы в моей игре

Спасибо

Ответы [ 2 ]

3 голосов
/ 13 февраля 2012

-90 и 270 - разные значения, но спрайт с этими значениями, назначенными свойству поворота, будет выглядеть одинаково, поскольку значения поворота для экранных объектов не имеют ограниченного диапазона,из документации flash.display.DisplayObject.rotation :

Значения от 0 до 180 представляют вращение по часовой стрелке;значения от 0 до -180 представляют вращение против часовой стрелки.Значения за пределами этого диапазона добавляются или вычитаются из 360, чтобы получить значение в этом диапазоне.Например, оператор my_video.rotation = 450 совпадает с my_video.rotation = 90.

, если вы хотите ограничить этот диапазон, вам придется создать собственную функцию для этого.

1 голос
/ 13 февраля 2012

Вращение во Flash начинается с востока, а затем увеличивается до 180 по часовой стрелке или уменьшается против часовой стрелки до -179.

enter image description here

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

Вот небольшая демонстрация, которая выводит вращение от 0 до 360 (0):

var shape:Shape = new Shape();

for(var i:int = 0; i<360; i++)
{
    shape.rotation ++;
    trace(shape.rotation);
}

Вы заметите, что выходной сигнал достигает -179 после 180.

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