Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Creating variables
- var geometry = new THREE.SphereGeometry( 0.1, 10, 10 );
- var material = new THREE.MeshPhongMaterial();
- //https://pastebin.com/5ubWeen3
- let segments = [];
- segments.push(new THREE.Mesh(geometry, material));
- segments[0].position.set(0, 0, 0);
- scene.add(segments[0]);
- let element = document.getElementById('userData');
- for(let i = 0;i < 4;i ++) {
- grow();
- }
- let moveAngle1 = 0;
- //let moveAngle2 = 0;
- //camera.position.set(100, 100, 100);
- //camera.lookAt(0, 0, 0);
- var light = new THREE.PointLight( );
- var light2 = new THREE.PointLight( );
- light.position.set(2,2,3);
- light2.position.set(-2, -2, 3);
- scene.add( light );
- scene.add( light2 );
- function grow() {
- let prevIdx = segments.length - 1;
- var material = new THREE.MeshPhongMaterial();
- segments.push(new THREE.Mesh(geometry, material));
- segments[prevIdx+1].position.set(segments[prevIdx].position.x
- ,segments[prevIdx].position.y
- ,segments[prevIdx].position.z);
- scene.add(segments[prevIdx+1]);
- element.innerHTML = 'size: ' + segments.length;
- }
- function update() {
- if(isKeyPressed[65]) {
- moveAngle1 += Math.PI / 180 * 2;
- }
- if(isKeyPressed[68]) {
- moveAngle1 -= Math.PI / 180 * 2;
- }
- //camera.position.x = segments[segments.length-1].position.x;
- //camera.position.y = segments[segments.length-1].position.y;
- //camera.position.z = segments[segments.length-1].position.z;
- //camera.lookAt(segments[0].position);
- segments[0].position.x += Math.cos(moveAngle1) / 100;
- segments[0].position.y += Math.sin(moveAngle1) / 100;
- //segments[0].position.y += Math.cos(moveAngle2) / 100;
- segments[0].position.z += isKeyPressed[87] / 10;
- segments[0].position.z -= isKeyPressed[83] / 10;
- for(let i = 1;i < segments.length;i ++) {
- let prev = segments[i-1].position;
- let curr = segments[i].position;
- curr.x += (prev.x - curr.x) / 10;
- curr.y += (prev.y - curr.y) / 10;
- curr.z += (prev.z - curr.z) / 10;
- }
- for(let s1 = 0;s1 < segments.length;s1 ++) {
- segments[s1].material.color.setHex(0xffffff);
- }
- for(let s1 = 0;s1 < segments.length;s1 ++) {
- for(let s2 = s1 + 7;s2 < segments.length;s2 ++) {
- if(segments[s1].position.distanceTo(segments[s2].position) < 0.2) {
- segments[s1].material.color.setHex(0x2e0e33);
- segments[s2].material.color.setHex(0x2e0e33);
- //console.log("colision");
- }
- }
- }
- //segments[0].position.z += moveDirection.z;
- }
- setInterval(grow, 300);
- function keyup(key) {
- // Show the pressed keycode in the console
- console.log("Pressed", key);
- }
- function mouseup() {
- // Show coordinates of mouse on click
- console.log("Mouse clicked at", mouseX, mouseY);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement