Skip to content

Instantly share code, notes, and snippets.

@maxgaurav
Created July 30, 2019 07:44
Show Gist options
  • Save maxgaurav/9fd1286f2d294e3ee131adb625ab10e2 to your computer and use it in GitHub Desktop.
Save maxgaurav/9fd1286f2d294e3ee131adb625ab10e2 to your computer and use it in GitHub Desktop.
Random Number Dice Animation
<html>
<head>
<title>Title</title>
<style>
body {
margin: 0;
}
canvas {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/106/three.js"></script>
<button onclick="roll()" id="roll">Roll</button>
<button onclick="resetRoll()">Reset</button>
</body>
</html>
<script>
let scene = new THREE.Scene();
let camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
let renderer = new THREE.WebGLRenderer({
alpha: true
});
light = new THREE.DirectionalLight(0xffffff);
light.position.set(0, 1, 1).normalize();
scene.add(light);
renderer.setSize(window.innerWidth, window.innerHeight);
let boxGeometry = new THREE.BoxGeometry(2, 2, 2);
let material = new THREE.MeshPhongMaterial({
map: THREE.ImageUtils.loadTexture('data:image/jpeg;base64,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')
});
// reference of image in 2d
// starting cut from - to - end
var one = [new THREE.Vector2(0, 0.5), new THREE.Vector2(0, 1), new THREE.Vector2(0.333, 1), new THREE.Vector2(0.333, 0.5)];
var two = [new THREE.Vector2(0.333, 0.5), new THREE.Vector2(0.333, 1), new THREE.Vector2(0.666, 1), new THREE.Vector2(0.666, 0.5)];
var three = [new THREE.Vector2(0.666, 0.5), new THREE.Vector2(0.666, 1), new THREE.Vector2(1, 1), new THREE.Vector2(1, 0.5)];
var four = [new THREE.Vector2(0.666, 0), new THREE.Vector2(0.666, 0.5), new THREE.Vector2(1, 0.5), new THREE.Vector2(1, 0)];
var five = [new THREE.Vector2(0.333, 0), new THREE.Vector2(0.333, 0.5), new THREE.Vector2(0.666, 0.5), new THREE.Vector2(0.666, 0)];
var six = [new THREE.Vector2(0, 0), new THREE.Vector2(0, 0.5), new THREE.Vector2(0.333, .5), new THREE.Vector2(0.333, 0)];
//clears UV mapping that already existed
boxGeometry.faceVertexUvs[0] = [];
// must be defined in a counter clockwise direction
boxGeometry.faceVertexUvs[0][0] = [four[0], four[1], four[3]];
boxGeometry.faceVertexUvs[0][1] = [four[1], four[2], four[3]];
boxGeometry.faceVertexUvs[0][2] = [three[0], three[1], three[3]];
boxGeometry.faceVertexUvs[0][3] = [three[1], three[2], three[3]];
boxGeometry.faceVertexUvs[0][4] = [five[0], five[1], five[3]];
boxGeometry.faceVertexUvs[0][5] = [five[1], five[2], five[3]];
boxGeometry.faceVertexUvs[0][6] = [two[0], two[1], two[3]];
boxGeometry.faceVertexUvs[0][7] = [two[1], two[2], two[3]];
boxGeometry.faceVertexUvs[0][8] = [six[0], six[1], six[3]];
boxGeometry.faceVertexUvs[0][9] = [six[1], six[2], six[3]];
boxGeometry.faceVertexUvs[0][10] = [one[0], one[1], one[3]];
boxGeometry.faceVertexUvs[0][11] = [one[1], one[2], one[3]];
let cube = new THREE.Mesh(boxGeometry, material);
scene.add(cube);
camera.position.z = 5;
numbers = {
number6: {
x: 0,
y: 0,
z: 0
},
number5: {
x: Math.PI / 2,
y: 0,
z: 0
},
number1: {
x: Math.PI,
y: 0,
z: 0
},
number2: {
x: Math.PI + Math.PI / 2,
y: 0,
z: 0
},
number3: {
x: 0,
y: Math.PI / 2,
z: 0
},
number4: {
x: 0,
y: Math.PI + Math.PI / 2,
z: 0
},
};
let toPosition = {
x: 0,
y: 0,
z: 0
};
// camera.position.rotateX = Math.PI * 0.5;
document.body.appendChild(renderer.domElement);
const rotate2Times = 4 * Math.PI;
function animate() {
requestAnimationFrame(animate);
if (cube.rotation.x < toPosition.x) {
cube.rotation.x += 0.09;
} else {
cube.rotation.x = toPosition.x;
}
if (cube.rotation.y < toPosition.y) {
cube.rotation.y += 0.09;
} else {
cube.rotation.y = toPosition.y;
}
if (cube.rotation.z < toPosition.z) {
cube.rotation.z += 0.09;
} else {
cube.rotation.z = toPosition.z;
}
renderer.render(scene, camera);
}
function random(max = 6) {
return Math.floor(Math.random() * max) + 1
}
function resetRoll() {
cube.rotation.x = 0;
cube.rotation.y = 0;
cube.rotation.z = 0;
toPosition = {x: 0, y: 0, z: 0};
}
function roll() {
resetRoll();
const randomNumber = random();
toPosition = numbers[`number${randomNumber}`];
cube.rotation.x = toPosition.x;
cube.rotation.y = toPosition.y;
cube.rotation.z = toPosition.z;
toPosition.x = toPosition.x + (4 * Math.PI);
toPosition.y = toPosition.y + (4 * Math.PI);
console.log(toPosition, cube.rotation, randomNumber);
}
animate();
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment