Показать сообщение отдельно
  #6 (permalink)  
Старый 09.03.2015, 14:36
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Сто пудов, такие очевидные вещи пропустил.
По поводу массива не уверен - еще обход делать, можно так оставить без лишних строчек.
Получилось вот что
Bug.prototype.rotate_limb1 = function() {
	 this.style_limb = this.limb1.style;
	// Переключение флага
	if(this.start_limb1 <= this.top_limb1) this.flag_limb1 = true;
	if(this.start_limb1 >= this.bottom_limb1) this.flag_limb1 = false;
	// Двигаем лапу вверх если флаг true
	if(this.flag_limb1){
		this.start_limb1 += this.step_limb;
	}else{ // Двигаем лапу вниз если флаг false
		this.start_limb1 -= this.step_limb;
	}
	this.style_limb.transform = 'rotate(' + this.start_limb1 + 'deg)';
};

А вот что бы для всех лап один код использовать - не получается
Делаю так
Bug.prototype.rotate_limb = function(limb, start, ltop, bottom, flag, step) {
	 this.style_limb = limb.style;
	 //Проверяем есть ли свойство, если нет обьявляем только один раз
	if (typeof this.start == 'undefined') {this.start = start; this.flag = flag;}
	// Переключение флага
	if(this.start < ltop) this.flag = true;
	if(this.start > bottom) this.flag = false;
	// Двигаем лапу вверх если флаг true
	if(this.flag){
		this.start += step;
	}
	// Двигаем лапу вниз если флаг false
	else{
		this.start -= step;
	}
	this.style_limb.transform = 'rotate(' + this.start + 'deg)';
};

Вызов пока что двух лап так:
this.rotate_limb(this.limb1, this.start_limb1, this.top_limb1, this.bottom_limb1, this.flag_limb1, this.step_limb);
this.rotate_limb(this.limb2, this.start_limb2, this.top_limb2, this.bottom_limb2, this.flag_limb2, this.step_limb2);

Пашет но не так как надо - все смешивается в кучу - шаг движения лапы удваивается - если сейчас две лапы, то обе лапы продвигаются на 6, если подключить третью лапу до будет двигаться на шаг 9 и т.д. Получается что код выполняется по 2 раза для каждой из лап И вообще они двигаются как то синхронно не зависимо от своих стартовых положений.

Последний раз редактировалось Bond, 09.03.2015 в 14:48.
Ответить с цитированием