Показать сообщение отдельно
  #1 (permalink)  
Старый 23.12.2015, 18:08
Кандидат Javascript-наук
Отправить личное сообщение для zlodiak Посмотреть профиль Найти все сообщения от zlodiak
 
Регистрация: 24.02.2012
Сообщений: 104

как бы танки
ребята, помогите пожалуйста обзором кода

начал писать игру про танки, но уже сейчас чувствую, что нахреновертил. скрипт довольно большой, поэтому залил его на codepen

тут слабых мест очень много, поэтому меня прежде всего интересует насколько правильно я реализовал объект Tank. привожу его здесь полностью:
Tank = function(id){ 
	var	self = this,
			DIRECTION = ['up', 'right', 'bottom', 'left'];

	this.Create = function(){
		self.direction = DIRECTION[helper.randomIntFromZero(4)];

		var	tank = $('<div class="tank" id="' + self.id + '"></div>').css({
			left: self.x_coord + 'px',
			top: self.y_coord + 'px'
		});

		$('#board').append(tank);
	}

	this.checkArrowDirection = function(){
		switch (self.direction) {
	   case 'up':
	      self.arrow = '▲';
	      break
	   case 'right':
	      self.arrow = '►';
	      break
	   case 'bottom':
	      self.arrow = '▼';
	      break
	   case 'left':
	      self.arrow = '◄';
	      break		      
	   default:
	   		console.log('error arrow direction');
	      break
		}
	}

	this.checkBorderCollision = function(){
		switch (self.direction) {
	   case 'up':
	      self.y_coord -= 10;
	      if(self.y_coord <= 0) self.y_coord = 0; 
	      break
	   case 'right':
	      self.x_coord += 10;
	      if(self.x_coord >= 480) self.x_coord = 480;
	      break
	   case 'bottom':
	      self.y_coord += 10;
	      if(self.y_coord >= 480) self.y_coord = 480;
	      break
	   case 'left':
	      self.x_coord -= 10;
	      if(self.x_coord <= 0) self.x_coord = 0;
	      break		      
	   default:
	   		console.log('error direction definition');
	      break
		}
	}

	this.checkChangeDirection = function(){
		if(helper.randomIntFromZero(100) > 75){
			self.direction = DIRECTION[helper.randomIntFromZero(4)];
		}
	}

	this.Offset = function(){
		$('#' + self.id).css({
			left: self.x_coord + 'px',
			top: self.y_coord + 'px'
		}).html(self.arrow);
	}

	this.Move = function(){
		self.checkChangeDirection();
		self.checkBorderCollision();
		self.checkArrowDirection();
		self.Offset();
	};

	this.x_coord = helper.randomIntFromZero(481);
	this.y_coord = helper.randomIntFromZero(481);
	this.id = id;	
	this.arrow;	
	this.direction;
	
	this.Create();
}


но буду рад и критике по остальному коду
Ответить с цитированием