переместить экранный объект на основе вращения другого объекта - PullRequest
0 голосов
/ 17 января 2010

Я, наверное, сталкивался с таким кодом раньше.просто не могу вспомнить где.У меня есть 2 экранных объекта на моей сцене.Один вращается, а другой расположен на 90 градусов от вращающегося объекта.Когда объект вращается, другой объект корректирует свое положение x и y относительно вращающегося объекта.

Если это не имеет смысла, то позвольте мне объяснить, что я пытаюсь сделать.У меня есть космический корабль в моей флеш игре.этот корабль имеет 2 торца на левом и правом крыле.когда корабль поворачивает, торренты должны оставаться на крыльях.Кто-нибудь знает, как мне поступить?

Ответы [ 2 ]

3 голосов
/ 17 января 2010

почему бы вам просто не вложить их в крылья? если крыло вращается, оно останется сверху крыла.

1 голос
/ 19 января 2010

Если вы настаиваете на том, чтобы объекты DisplayObject не были вложенными, используйте силу тригонометрии.

Предполагая, что при вращении = 0 объект вашей турели находится на расстоянии r непосредственно справа от центра корабля.

private function degreesToRadians(degrees:Number):Number {
    return degrees * Math.PI / 180;
}

turret.x = shipCenter.x + r*Math.cos(degreesToRadians(ship.rotation));
turret.y = shipCenter.y + r*Math.sin(degreesToRadians(ship.rotation));

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

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