Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Скорость вращения (колесо обозрения) (http://www.flasher.ru/forum/showthread.php?t=203431)

PRO100Light 24.09.2013 13:18

Скорость вращения (колесо обозрения)
 
Вложений: 1
Привет! Прошу помощи) Помогите составить формулу, скорости вращения колеса, что бы соответствовала скорости вращения нескольких объектов по кругу (кабинок). Вообще ума не приложу.
Код AS1/AS2:

var speed:Number = 0.008;
var centerX:Number = koleso._x;
var centerY:Number = koleso._y;
var radius:Number = koleso._height/2;
var numOfKabins:Number = 12;
 
//this.onEnterFrame = mover;
 
 
for(var i=0;i<numOfKabins;i++)
{
        var t = this.attachMovie("kabina","bt"+i,i+1);
        t.angle = i * ((Math.PI*2)/numOfKabins);
        t.onEnterFrame = mover;
}
 
function mover()
{
        this._x = Math.cos(this.angle) * radius + centerX;
        trace(Math.cos(this.angle) )
        this._y =Math.sin(this.angle) * radius + centerY;
        this.angle += this._parent.speed;
 
        koleso._rotation += 4.75*speed; // ???????????
}
 
 
this.onMouseMove = function()
{
        speed = (this._xmouse-centerX)/9000;
}

Сейчас само колесо со временем отстает... или спешит...

Sergey_A 24.09.2013 16:01

То, что погрешность накапливается - ИМХО, естественно.
Я бы предложил в том же цикле, в котором мувики вставляются, запоминать их координаты (можно - в самих мувиках), и после каждого полного оборота колеса заново присваивать их мувикам - кабинам.

Tails 24.09.2013 16:30

1. Создайте для каждой кабинки экземпляр класса Point - указывающий позицию привязки в системе координат колеса, то-есть "внутри него".
2. Затем, каждый кадр, для каждой кабинки - получайте координаты из этих точек. Переводя их из системы координат колеса, в систему координат кабинок. Метод для перевода - localToGlobal у любого дисплей объекта.

dark256 25.09.2013 13:21

Вложений: 1
Мегакод:

Код AS1/AS2:

WH.onEnterFrame = function(){
        this._rotation += 0.5
        this.кабинка._rotation = -this._rotation
}



Часовой пояс GMT +4, время: 04:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.