found a solution for the cool spinny wheel, just change initial speed
This commit is contained in:
parent
8b2bcc9af4
commit
2dbc436d6c
51
index.html
51
index.html
@ -30,15 +30,37 @@
|
|||||||
300, 600, 300, 500, 800, 550, 400, 300, 900, 500, 'spin again',
|
300, 600, 300, 500, 800, 550, 400, 300, 900, 500, 'spin again',
|
||||||
900, 'Bankrupt', 600, 400, 300
|
900, 'Bankrupt', 600, 400, 300
|
||||||
];
|
];
|
||||||
const wheelRadiansData = [
|
const wheelSpinSpeedData = [
|
||||||
{'0':{'lose a turn':4.6}},
|
{'0':{'lose a turn':0.252}},
|
||||||
{'1':{'800':9.2}}
|
{'1':{'800':.25}},
|
||||||
|
{'2':{'350':.247}},
|
||||||
|
{'3':{'450':.2445}},
|
||||||
|
{'4':{'450':.242}},
|
||||||
|
{'5':{'300':.239}},
|
||||||
|
{'6':{'300':.239}},
|
||||||
|
{'7':{'300':.239}},
|
||||||
|
{'8':{'300':.239}},
|
||||||
|
{'9':{'300':.239}},
|
||||||
|
{'10':{'300':.239}},
|
||||||
|
{'11':{'300':.239}},
|
||||||
|
{'12':{'300':.239}},
|
||||||
|
{'13':{'300':.239}},
|
||||||
|
{'14':{'300':.239}},
|
||||||
|
{'15':{'300':.239}},
|
||||||
|
{'16':{'300':.239}},
|
||||||
|
{'17':{'300':.239}},
|
||||||
|
{'18':{'300':.239}},
|
||||||
|
{'19':{'300':.239}},
|
||||||
|
{'20':{'300':.239}},
|
||||||
|
{'21':{'300':.239}},
|
||||||
|
{'22':{'300':.239}},
|
||||||
|
{'23':{'300':.239}}
|
||||||
];
|
];
|
||||||
const canvas = document.getElementById('wheelCanvas');
|
const canvas = document.getElementById('wheelCanvas');
|
||||||
const ctx = canvas.getContext('2d');
|
const ctx = canvas.getContext('2d');
|
||||||
const radius = canvas.width / 2;
|
const radius = canvas.width / 2;
|
||||||
|
|
||||||
let rotation = 0;
|
let rotation = 0 - (.283*6); //sets the zero index on top
|
||||||
let spinning = false;
|
let spinning = false;
|
||||||
let spinSpeed = 0;
|
let spinSpeed = 0;
|
||||||
let img = new Image();
|
let img = new Image();
|
||||||
@ -95,35 +117,30 @@
|
|||||||
function startSpin(targetIndex) {
|
function startSpin(targetIndex) {
|
||||||
console.log('targetIndex: ',targetIndex);
|
console.log('targetIndex: ',targetIndex);
|
||||||
if (spinning) return;
|
if (spinning) return;
|
||||||
|
rotation = 0 - (.283*6)
|
||||||
spinning = true;
|
spinning = true;
|
||||||
|
|
||||||
const totalSpins = Math.floor(Math.random() * 3) + 3; // 3-6 full spins
|
const totalSpins = Math.floor(Math.random() * 3) + 3; // 3-6 full spins
|
||||||
const anglePerSegment = (2 * Math.PI) / wheel.length;
|
const anglePerSegment = (2 * Math.PI) / wheel.length;
|
||||||
const targetAngle = targetIndex * anglePerSegment;
|
const targetAngle = targetIndex * anglePerSegment;
|
||||||
console.log(anglePerSegment);
|
console.log(anglePerSegment);
|
||||||
// Align the target segment to 12 o'clock
|
|
||||||
const topAlignmentOffset = Math.PI / 2; // Adjust to position the result at the top
|
|
||||||
const finalTargetAngle = totalSpins * 2 * Math.PI + targetAngle - topAlignmentOffset;
|
|
||||||
|
|
||||||
let currentRotation = rotation; // Start from the current rotation
|
let currentRotation = rotation; // Start from the current rotation
|
||||||
spinSpeed = 0.25; // Initial speed
|
spinSpeed = 0.239; // Initial speed
|
||||||
|
|
||||||
function animate() {
|
function animate() {
|
||||||
if (Math.abs(currentRotation - finalTargetAngle) < 0.01 && spinSpeed < 0.001) {
|
|
||||||
|
if ( spinSpeed < 0.001) {
|
||||||
spinning = false;
|
spinning = false;
|
||||||
rotation = finalTargetAngle % (2 * Math.PI); // Final alignment
|
|
||||||
drawWheel();
|
|
||||||
console.log(`Landed on: ${wheel[targetIndex]}`);
|
console.log(`Landed on: ${wheel[targetIndex]}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// console.log('currentRotation: ',currentRotation);
|
||||||
|
// console.log('spinSpeed: ', spinSpeed);
|
||||||
currentRotation += spinSpeed;
|
currentRotation += spinSpeed;
|
||||||
spinSpeed *= 0.99; // Gradual slowdown
|
spinSpeed *= 0.99; // Gradual slowdown
|
||||||
//console.log(spinSpeed);
|
|
||||||
// console.log(finalTargetAngle,rotation);
|
|
||||||
if (spinSpeed < .01){
|
|
||||||
spinSpeed = .01;
|
|
||||||
}
|
|
||||||
rotation = currentRotation ;
|
rotation = currentRotation ;
|
||||||
drawWheel();
|
drawWheel();
|
||||||
requestAnimationFrame(animate);
|
requestAnimationFrame(animate);
|
||||||
|
Loading…
Reference in New Issue
Block a user