From f3fa69f65fb37c91a8d85ec14ce73fdfeb8623e8 Mon Sep 17 00:00:00 2001 From: Pownieh Date: Tue, 7 Mar 2023 10:20:55 +0100 Subject: [PATCH] Takes roughly 50 degrees to slow down, so this is now hardcoded lol --- group_numbers.js | 4 ++-- script.js | 47 +++++++++++++++++++++++++++++++++-------------- 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/group_numbers.js b/group_numbers.js index 368ea87..aafc90e 100644 --- a/group_numbers.js +++ b/group_numbers.js @@ -1,4 +1,4 @@ -const display = [5, 6,7,8,9, 10] +const display = [5,6,7,8] const not_pickable = [ 6,7,8 -] \ No newline at end of file +] diff --git a/script.js b/script.js index 5ccab8c..cb10b0d 100644 --- a/script.js +++ b/script.js @@ -77,21 +77,21 @@ console.log(spinChart.options.rotation); /* --------------- Spinning Code --------------------- */ +let counter = 0; spinBtn.addEventListener("click", () => { - let spinAmount = 61; + let spinAmount = 71; spinBtn.disabled = true; text.innerHTML = `

Held og lykke!

`; let slowing_down = false; + let keep_speed = false; let pickable = spinValues.filter(item => !not_pickable.includes(item.value)) let target = pickable[Math.floor(Math.random() * pickable.length)] let target_index = spinValues.findIndex(item => item.value === target.value); target_degree = Math.floor(Math.random() * (target.maxDegree - target.minDegree - 5)) - //slowing_down_degree = Math.floor(0.5 * (spinValues[target_index + 1].maxDegree - spinValues[target_index + 1].minDegree)) console.log(spinValues[target_index]); - //console.log(spinValues[target_index + 1]); let slowing_down_target = spinValues[target_index + 1]; @@ -101,37 +101,56 @@ spinBtn.addEventListener("click", () => { let rotationInterval = window.setInterval(() => { spinAmount *= 0.99 - if (slowing_down) { + if (slowing_down && !keep_speed) { spinAmount = Math.max(0.1, spinAmount) + } else if (keep_speed) { + spinAmount = Math.max(4, spinAmount) } else { spinAmount = Math.max(4, spinAmount) } - spinChart.options.rotation += spinAmount; spinChart.update(); if (spinChart.options.rotation >= 360) { spinChart.options.rotation -= 360; } - if (spinAmount <= 5 && target.minDegree <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < target.maxDegree - target_degree + (degrees/2) ) { - //console.log(target_degree); + // it takes like 40-ish ticks to slow it down, so we need to compute when we need to start slowing down for this to always work + // Add a check, if it is too high when it passes halfway through or something like then continue at that speed for the next round + + //if (spinAmount <= 8 && target.minDegree <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < target.maxDegree + (degrees/display.length) - target_degree + 3 ) { + if (spinAmount <= 8 && target.minDegree <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < (target.maxDegree - target_degree) + 50 ) { + console.log((360 - spinChart.options.rotation) + " ---- " + (target.maxDegree - target_degree)); console.log(spinAmount + " Decreasing more") slowing_down = true; spinAmount *= 0.9 - - if (spinAmount <= 0.1 && target.minDegree <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < target.maxDegree-target_degree) { + counter = counter + 1; + if (spinAmount <= 0.1 && target.minDegree-5 <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < target.maxDegree) { spinChart.update() text.innerHTML = `

Gruppe nummer ${target.value} skal præsentere!

`; clearInterval(rotationInterval); spinBtn.disabled = false; - } else if (target.minDegree + 1 > 360-spinChart.options.rotation) { - spinAmount = 0; - console.log("halting"); + console.log("counter " + counter); + } else if ( spinAmount <= 1 && target.minDegree + 3 > 360-spinChart.options.rotation) { + console.log("halting " + spinAmount ); + spinChart.update() + text.innerHTML = `

Gruppe nummer ${target.value} skal præsentere!

`; + clearInterval(rotationInterval); + spinBtn.disabled = false; + console.log("counter " + counter); + + } + else if ( spinAmount >= 1 && target.minDegree + 3 > 360-spinChart.options.rotation) { + keep_speed = true; + /*console.log("halting"); + spinChart.update() + text.innerHTML = `

Gruppe nummer ${target.value} skal præsentere!

`; + clearInterval(rotationInterval); + spinBtn.disabled = false; + console.log("counter " + counter);*/ + } } - - }, 10); }); /* --------------- End Spin Wheel --------------------- */