03.04.2018, 16:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Javany11
|
Крутить барабаны с постоянными картинками было бы намного проще.
|
Это как сказать еще. Во первых барабанам нужно задать разную скорость и направление. Скорость не может моментально достичь макс. значения, то есть она возрастает по некоему закону, и остановятся барабаны не сразу, то есть скорость замедляется тоже по некоему закону. Причем не зависимо от скорости и направления вращения остановится барабаны должны в определенной позиции все.
Если конечно все по-барабану, то меняйте их случайно как угодно, мне все одинаково, что вам сказал куратор, то и делайте.
PS. В реальных автоматах картинки одни и те же, если только барабаны или наклейки на них не менять.
Последний раз редактировалось laimas, 03.04.2018 в 16:15.
|
|
03.04.2018, 18:54
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Javany11,
Смотрели пост 20?
Я его вроде довел до кондиции
|
|
04.04.2018, 09:17
|
Аспирант
|
|
Регистрация: 04.03.2018
Сообщений: 34
|
|
Сообщение от Dilettante_Pro
|
Javany11,
Смотрели пост 20?
Я его вроде довел до кондиции
|
Извините, вчера не посмотрел, на пары убегал. Сегодня посмотрел, все отлично работает. Самое обидное что я пробовал этот метод, но я сделал ошибку и отбросил его не разобравшись. У меня переменные res1, res2, res3 ; были локальными. Буду сегодня после работы писать условные конструкции с выигрышными комбинациями. Вам огромное спасибо , хорошо тогда есть люди которые делятся своими знаниями. Спасибо.
|
|
04.04.2018, 14:43
|
Аспирант
|
|
Регистрация: 04.03.2018
Сообщений: 34
|
|
Сообщение от Dilettante_Pro
|
Читал, смотрел - ничего не понял.
Собрал макет.
Таки вроде все работает
<div class = "carousel_1">
<img src= 'https://javascript.ru/cat/list/dom.gif'/>
<img src= 'https://javascript.ru/cat/list/event.gif'/>
<img src= 'https://javascript.ru/cat/list/integr.jpg'/>
</div>
<div class = "carousel_2">
<img src= 'https://javascript.ru/cat/list/dom.gif'/>
<img src= 'https://javascript.ru/cat/list/event.gif'/>
<img src= 'https://javascript.ru/cat/list/integr.jpg'/>
</div>
<div class = "carousel_3">
<img src= 'https://javascript.ru/cat/list/dom.gif'/>
<img src= 'https://javascript.ru/cat/list/event.gif'/>
<img src= 'https://javascript.ru/cat/list/integr.jpg'/>
</div>
<button id='lever'>click</button>
<div id="result"></div>
<script>
var pics=['https://javascript.ru/cat/list/dom.gif', 'https://javascript.ru/cat/list/event.gif', 'https://javascript.ru/cat/list/integr.jpg', 'https://javascript.ru/cat/list/donkey.gif', 'https://javascript.ru/cat/list/firefox.gif', 'https://javascript.ru/cat/list/opera.gif', 'https://javascript.ru/cat/list/libs.jpg', 'https://javascript.ru/cat/list/scriptaculous_54.png', 'https://javascript.ru/cat/list/dojo_54.png', 'https://javascript.ru/cat/list/jquery_54.png'];//храним src картинок
var imgs_1 = document.querySelectorAll('.carousel_1 img');//забираем картинки из карусели №1
var imgs_2 = document.querySelectorAll('.carousel_2 img');//забираем картинки из карусели №2
var imgs_3 = document.querySelectorAll('.carousel_3 img');//забираем картинки из карусели №3
var count = 0;
var a = 0;//здесь храним результат от setInterval
var b; // тут храним округленные рандомные числа
var c; // тут храним округленные рандомные числа
var d; // тут храним округленные рандомные числа
lever.addEventListener('click',function(){
b = Math.random()*10//рандомим от 0 до 10
b = Math.trunc(b) //округляем до целого
c = Math.random()*10//рандомим от 0 до 10
c = Math.trunc(c) //округляем до целого
d = Math.random()*10//рандомим от 0 до 10
d = Math.trunc(d) //округляем до целого
//console.log(b);//тестим рандом
//console.log(c);//тестим рандом
//console.log(d);//тестим рандом
var res1 = "", res2 = "", res3 = "";
var setInt1 = setInterval(slider1,100);//запускаем интервал
var setInt2 = setInterval(slider2,120);//запускаем интервал
var setInt3 = setInterval(slider3,140);//запускаем интервал
function slider1(){//запускаем барабан
a++;//добавляем к переменной 1 с каждым интервалом
if(a>=10){a=0} //ограничиваем переменную до 10
count--;
if(count<0) count = pics.length-1;
for(let i =0; i<imgs_1.length;i++) imgs_1[i].src = pics[(i+count)%pics.length];
if(a==b) { clearInterval(setInt1); //останавливаем интервал
res1 = "Барабан 1 " + document.querySelectorAll('.carousel_1 img')[1].src;
if(res2 != "" && res3 != "") result.innerHTML = res1 + "<br>" + res2 + "<br>" + res3;
}
}
function slider2(){//запускаем барабан
a++;
if(a>=10){a=0}//ограничиваем переменную до 10
count--;
if(count<0) count = pics.length-1;
for(let i =0; i<imgs_2.length;i++) imgs_2[i].src = pics[(i+count)%pics.length];
if(a==c) { clearInterval(setInt2); //останавливаем интервал
res2 = "Барабан 2 " + document.querySelectorAll('.carousel_2 img')[1].src;
if(res1 != "" && res3 != "") result.innerHTML =res1 + "<br>" + res2 + "<br>" + res3;
}
}
function slider3(){//запускаем барабан
a++;
if(a>=10){a=0}//ограничиваем переменную до 10
count--;
if(count<0) count = pics.length-1;
for(let i =0; i<imgs_3.length;i++) imgs_3[i].src = pics[(i+count)%pics.length];
if(a==d) { clearInterval(setInt3)//останавливаем интервал
res3 = "Барабан 3 " + document.querySelectorAll('.carousel_3 img')[1].src;
if(res1 != "" && res2 != "") result.innerHTML =res1 + "<br>" + res2 + "<br>" + res3;
}
}})
</script>
|
Простите, не совсем понял для чего нужна эти условные конструкции
if(res1 != "" && res2 != "")
if(res2 != "" && res3 != "")
if(res1 != "" && res3 != "")
строки 60;72;84;
Последний раз редактировалось Javany11, 04.04.2018 в 14:47.
|
|
04.04.2018, 18:28
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от Javany11
|
Простите, не совсем понял для чего нужна эти условные конструкции
if(res1 != "" && res2 != "")
if(res2 != "" && res3 != "")
if(res1 != "" && res3 != "")
строки 60;72;84;
|
Для того, чтобы результат выводился после остановки всех барабанов, когда сформировался результат по каждому - так сказать, окончательный итог.
Вместо result.innerHTML = ... можно подставить вызов функции обработки результата
Последний раз редактировалось Dilettante_Pro, 04.04.2018 в 18:32.
|
|
04.04.2018, 22:09
|
Аспирант
|
|
Регистрация: 04.03.2018
Сообщений: 34
|
|
Сообщение от Dilettante_Pro
|
Для того, чтобы результат выводился после остановки всех барабанов, когда сформировался результат по каждому - так сказать, окончательный итог.
Вместо result.innerHTML = ... можно подставить вызов функции обработки результата
|
Разобрался. Да, действительно, так удобнее. Спасибо.
|
|
|
|