Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2016, 01:13
Новичок на форуме
Отправить личное сообщение для bkmz_ha Посмотреть профиль Найти все сообщения от bkmz_ha
 
Регистрация: 30.03.2016
Сообщений: 2

Помогите убрать рандом
Всем доброго времени суток!
Есть такой код на колесо, состоящее из 8 секторов после выпадения сектор убирается. Есть сектор, при выпадении которого, идет возврат всех секторов.

Возможно ли убрать рандом, чтобы сектора выпадали подряд по кругу? Или хотя бы чтобы можно было самому выбирать, насколько градусов повернуть колесо? Заранее благодарю!

turnWheel = function() {
	var turn, degree, bonus, random_deg,
			chestX, chestY;

	turn = request(JSON_TURN, {hash: userSign}, 'POST');
	if (turn.error) {
		getModal('server_error', turn);
	}

	if (turn.bonus_used == 1) {
		getModal('end_game', turn);
	}

	degree = parseInt(cellCoords[turn.last_turn - 1].deg);
	bonus = Number(turn.total_bonus).toFixed();
	random_deg = Math.floor(Math.random() *2 + 3)*360 + degree;

	for (var i = 0; i < cells.length; i++) {
		createjs.Tween.get(cells[i]).to({rotation: -(random_deg )}, random_deg/360*1500, createjs.Ease.cubicOut);
		cells[i].rotation = 0;
	}

	createjs.Tween.get(wheel).to({rotation: random_deg}, random_deg/360*1500, createjs.Ease.cubicOut).call(function() {

		if (turn.loss == 0) {
			wheel.rotation = degree;
			chestX = cellCoords[turn.last_turn - 1].dx;
			chestY = cellCoords[turn.last_turn - 1].dy;

			if (turn.last_turn < 8) {
				if (turn.last_turn == 7) {
					createjs.Tween.get(cells[turn.last_turn - 1]).to({x: chestX, y: chestY}, 400).call(function() {

						createjs.Tween.get(bonusShadow).to({alpha:1}, 200).call(function() {});
						createjs.Tween.get(bonusDouble).to({alpha:1}, 200).call(function() {

							setTimeout(function(){
								createjs.Tween.get(bonusShadow).to({alpha:0}, 200).call(function() {});
								createjs.Tween.get(bonusDouble).to({alpha:0}, 200).call(function() {
									chestValue.text = bonus + '%';
									cells[turn.last_turn - 1].rotation = degree;
									cells[turn.last_turn - 1].visivle = false;
									updateCells(turn.fields);
								});
							}, 650);
						});


					});
				} else {
					createjs.Tween.get(cells[turn.last_turn - 1]).to({x: chestX, y: chestY}, 400).call(function() {
						chestValue.text = bonus + '%';
						cells[turn.last_turn - 1].rotation = degree;
						cells[turn.last_turn - 1].visivle = false;
						updateCells(turn.fields);
					});
				}

			} else {

				createjs.Tween.get(bonusShadow).to({alpha:1}, 200).call(function() {});
				createjs.Tween.get(bonusReload).to({alpha:1}, 200).call(function() {

					setTimeout(function(){
						createjs.Tween.get(bonusShadow).to({alpha:0}, 200).call(function() {});
						createjs.Tween.get(bonusReload).to({alpha:0}, 200).call(function() {

							updateCells(turn.fields);
							for (var index in turn.fields) {
								cells[index-1].visible = true;
								cells[index-1].alpha = 1;
								cells[index-1].x = cellCoords[index - 1].x;
								cells[index-1].y = cellCoords[index - 1].y;
							}
						});
					}, 650);
				});

			}
		} else {
			getModal('end_game', turn);
		}
	});

};

updateCells = function(cells_value) {
	for (var index in cells_value) {
		if (index < 7) {
			cells[index-1].getChildAt(1).text = cells_value[index]+'%';
		}
		if (cells_value[index] == 0) {
			cells[index-1].visible = false;
		} else {
			cells[index-1].visible = true;
		}
		cells[index-1].x = cellCoords[index-1].x;
		cells[index-1].y = cellCoords[index-1].y;
	}
	rotation = false;
};
Ответить с цитированием
  #2 (permalink)  
Старый 30.03.2016, 08:48
Аспирант
Отправить личное сообщение для m1lk1way Посмотреть профиль Найти все сообщения от m1lk1way
 
Регистрация: 24.12.2015
Сообщений: 41

навскидку попробуйте в переменной поменять выделенную часть на нужное количество градусов.
random_deg = *!*Math.floor(Math.random() *2 + 3)*360*/!* + degree;

Последний раз редактировалось m1lk1way, 30.03.2016 в 08:54.
Ответить с цитированием
  #3 (permalink)  
Старый 30.03.2016, 10:10
Новичок на форуме
Отправить личное сообщение для bkmz_ha Посмотреть профиль Найти все сообщения от bkmz_ha
 
Регистрация: 30.03.2016
Сообщений: 2

Сообщение от m1lk1way Посмотреть сообщение
навскидку попробуйте в переменной поменять выделенную часть на нужное количество градусов.
random_deg = *!*Math.floor(Math.random() *2 + 3)*360*/!* + degree;
Пробовал, все равно выдает не то, что нужно.
И еще такой вопрос, через что лучше редактировать "на лету" через браузер js?
Ответить с цитированием
  #4 (permalink)  
Старый 30.03.2016, 18:53
Аспирант
Отправить личное сообщение для m1lk1way Посмотреть профиль Найти все сообщения от m1lk1way
 
Регистрация: 24.12.2015
Сообщений: 41

bkmz_ha,
Ну весь ваш код разбирать было бы глупо, я указал вам строку где происходит ваш рандом. Теперь вам нужно разобрать механику. Вот псевдокод:
random_deg= (всё что в скобках даёт либо 3 либо 4) * умножается на 360 (не понимаю зачем) и добавляется переменная degree (видимо это положение указателя в данный момент, до прокрутки).

Не понятно, что значит "на лету". Если вы про дебаг, то консоль браузера отлично с этим справляется.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите убрать отступ в нижней части сайта Georka Элементы интерфейса 9 26.10.2014 23:13
Помогите убрать отступ в нижней части сайта Georka Элементы интерфейса 0 25.10.2014 09:25
Помогите убрать отступ из-за стороннего iframe Georka Элементы интерфейса 0 24.10.2014 14:19
Помогите убрать один элемент из скрипта Marlboro Javascript под браузер 0 15.11.2013 19:27
Помогите убрать конфликт библиотек за бабло emptyxl Элементы интерфейса 2 19.01.2012 19:59