![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Здравствуйте.
Я пытаюсь сделать так: добавляю определённое количество объектов на сцену, определяю их угол, относительно определённой точки, определяю расстояние от определённого объекта до центра, после всего этого я присваиваю новые координаты каждому определённому объекту по такой системе: "определённыйОбъект.x = центр.x + Math.cos(угол) * расстояниеОтОбъектаДоТочки, определённыйОбъект.y = центр.y + Math.sin(угол) * расстояниеОтОбъектаДоТочки". В итоге некоторые объекты куда-то уезжают, а другие остаются... А цель вообще такая: добавить объекты через косинусы\синусы, определяя по изначальным координатам их угол, туда, где они изначально были. Что я делаю неправильно? |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
А что Вы в итоге хотите? я просто не понял цель
Вам нужно просто точку под углом или повернуть объект на угол относительно центра к другой точки? |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Пока я хочу, просто добавить объект туда же, где он был изначально, но только с помощью косинусов\синусов. После этого я попытаюсь изменять угол, чтобы создать эффект вращения объекта вокруг центра.
|
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Вопрос о вращении во круг центра - на три темы ниже. А какие значения есть для возврата?
|
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Так я могу сделать так, чтобы они вращались (у меня вокруг определенных объектов вращаются звезды).
Есть радиус, угол. Хотя, если честно, я не понимаю, что обозначает "возврат". |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
А какие для этого есть значения. |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
package classes.orders { import flash.display.MovieClip; import classes.init.Settings; import flash.geom.Point; import flash.events.Event; public class MotionStargazers extends MovieClip { public function MotionStargazers() { this.addEventListener(Event.ENTER_FRAME,motion); } private function motion(event:Event):void { const STARGAZERS:Array = Settings.STARGAZERS; //Ссылка на массив звездочётов: const LENGTHSTARGAZERS:int = Settings.STARGAZERS.length; //Длина массива звездочётов: const CENTER:Point = new Point(Settings.mainContainer.stageWidth/2,Settings.mainContainer.stageHeight/2); for(var stargazer:int = 0; stargazer < LENGTHSTARGAZERS; stargazer++) { const STARGAZER:MovieClip = STARGAZERS[stargazer][0]; //Ссылка на звездочёта: const STARGAZERPOINT:Point = new Point(STARGAZER.x,STARGAZER.x); //Точка звездочёта: const RADIUS:Number = Point.distance(STARGAZERPOINT,CENTER); //Радиус: const ANGLE:Number = Math.atan2(STARGAZER.y-CENTER.y,STARGAZER.x-CENTER.x); //Угол: //STARGAZER.x = CENTER.x + Math.cos(ANGLE) * RADIUS; //STARGAZER.y = CENTER.y + Math.sin(ANGLE) * RADIUS; STARGAZER.x = CENTER.x + Math.cos(ANGLE) * 200; STARGAZER.y = CENTER.y + Math.sin(ANGLE) * 200; } } } } Всё верно, извините. Добавлено через 1 минуту Если работает прокомментированный код, то звездочёты куда-то улетают. Добавлено через 9 минут Получается, что объект был в точке A, потом определив его координаты мы добавляем его туда же, но только через косинусы\синусы. |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
это Вы делите на два... а это Вы делите на .2. я это к тому, что я раньше не знал этого ![]() |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Я поправил код. Такого не должно быть. Делю на два затем, чтобы узнать центр сцены.
|
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
конечно не знал, потому что здесь делится на 5, и это эквивалентно записи
я так понимаю, тема уже не актуальна, но так для заметки Цитата:
можно даже ее сделать статичной. Последний раз редактировалось Isfet; 16.01.2014 в 10:27. |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|