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

Жук который ползает Часть 2
Всем здравствуйте.
Есть жук (благодаря РОНИ и danik.js) который двигается при нажатии клавиш вверх, вниз, вправо, влево:
(Приведу только тот код который касается сути вопроса)
Лапа в HTML
<div class="marg">
		<div class="bug"> <!-- Жук -->
			<div class="limb_left1"> <!-- Лапа -->
				<span></span>
			</div>
		</div>
	</div>

А здесь жук в JS
function Bug() {
    this.step = 1;
    this.rotation = 0;
    this.direction = 'top';
    this.top = 200;
    this.left = 200;
    this.element = document.querySelector('.bug');
    this.bindKeys();
    //--------------------Лапа 1-----------------------------------
    this.limb = document.querySelector('.limb_left1');
    this.start_limb1   = -35; //Стартовое положение лапы
    this.top_limb1     = -35; // Крайнее верхнее положение лапы
    this.bottom_limb1  = 17;  // Крайнее нижнее положение лапы
    this.flag_limb = true; // Флаг лапы
    this.step_limb = 5; // Скорость движения лапы
    debugger;
}


Я добавил ему пока что одну лапу которая двигается вверх-вниз только при движении жука
(движение осуществляется через transform: rotate(0deg)
//---------------Лапа 1 - верхняя левая----------------------
Bug.prototype.rotate_limb1 = function() {
	var style_limb = this.limb.style;
	// Переключение флага
	if(this.start_limb1 < this.top_limb1) this.flag_limb = true;
	if(this.start_limb1 > this.bottom_limb1) this.flag_limb = false;
	// Двигаем лапу вверх если флаг true
	if(this.flag_limb == true){
		this.start_limb1 = this.start_limb1+this.step_limb;
		style_limb.transform = 'rotate(' + this.start_limb1 + 'deg)';
	}
	// Двигаем лапу вниз если флаг false
	if(this.flag_limb == false){
		this.start_limb1 = this.start_limb1-this.step_limb;
		style_limb.transform = 'rotate(' + this.start_limb1 + 'deg)';
	}
};
    //-----------------------------------------------------------------------

Все работает, все норм, но есть самый главный вопрос - адекватное ли подобное решение? Или может можно сделать проще, лучше и понятнее?

Последний раз редактировалось Bond, 08.03.2015 в 23:18.
Ответить с цитированием