Сто пудов, такие очевидные вещи пропустил.
По поводу массива не уверен - еще обход делать, можно так оставить без лишних строчек.
Получилось вот что
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 раза для каждой из лап И вообще они двигаются как то синхронно не зависимо от своих стартовых положений.