Показать сообщение отдельно
Старый 18.12.2017, 18:41
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 10  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Всем огромное спасибо!
Конечно, банальный вопрос получился, но почему-то я не мог до него сам допереть. Что если хочешь реалистично - делай как в реальности. =) + кроме того, сильно сократился код. Потому то у меня и свербило где-то, что я чувствовал - не дело писанину разводить, должен быть простой способ. Еще раз спасибо.
В итоге что я проделал:
сначала задаю параметры

Код AS3:
		private var _alpha: Number = 0;
		private var _phase: Number = 0;
		private var _radius:Number = 60;
потом выставляю на сцену поршни

Код AS3:
			_phase = 360 / _model.forcesCount;
 
			for (i = 0; i < _model.forcesCount; i++ )
			{	
				var angle:Number = radToDeg(_alpha + _phase * i);
 
				_forcers[i].y = Math.cos(angle) * _radius;
 
				_forcers[i].direction = _phase * i < 180 ? -1 : 1;
 
				_mc.forcersContainer.addChild(_forcers[i]);
			}
далее, при анимации, сдвигаю по фомуле .y и присваиваю direction в крайних положениях пошня (для того, чтоб менять цвет и глубину отображения в дисплей листе)

Код AS3:
				var forcer:MovieClip = _forcers[i];
				var angle:Number = radToDeg(_alpha + _phase * i);
				var cos:Number = Math.cos(angle);
 
				forcer.y = cos * _radius;
 
				if ((cos == 1) || (cos == -1))
					_forcer.direction = -cos;
__________________
while(live()) { hope(); }


Последний раз редактировалось ZergMaster; 19.12.2017 в 03:20.