Advertisement
Guest User

Untitled

a guest
May 20th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. // Creating variables
  2. var geometry = new THREE.SphereGeometry( 0.1, 10, 10 );
  3. var material = new THREE.MeshPhongMaterial();
  4. //https://pastebin.com/5ubWeen3
  5.  
  6. let segments = [];
  7. segments.push(new THREE.Mesh(geometry, material));
  8. segments[0].position.set(0, 0, 0);
  9. scene.add(segments[0]);
  10.  
  11. let element = document.getElementById('userData');
  12.  
  13. for(let i = 0;i < 4;i ++) {
  14. grow();
  15. }
  16.  
  17. let moveAngle1 = 0;
  18. //let moveAngle2 = 0;
  19. //camera.position.set(100, 100, 100);
  20. //camera.lookAt(0, 0, 0);
  21.  
  22. var light = new THREE.PointLight( );
  23. var light2 = new THREE.PointLight( );
  24. light.position.set(2,2,3);
  25. light2.position.set(-2, -2, 3);
  26. scene.add( light );
  27. scene.add( light2 );
  28.  
  29. function grow() {
  30. let prevIdx = segments.length - 1;
  31. var material = new THREE.MeshPhongMaterial();
  32. segments.push(new THREE.Mesh(geometry, material));
  33. segments[prevIdx+1].position.set(segments[prevIdx].position.x
  34. ,segments[prevIdx].position.y
  35. ,segments[prevIdx].position.z);
  36. scene.add(segments[prevIdx+1]);
  37. element.innerHTML = 'size: ' + segments.length;
  38. }
  39.  
  40. function update() {
  41. if(isKeyPressed[65]) {
  42. moveAngle1 += Math.PI / 180 * 2;
  43. }
  44. if(isKeyPressed[68]) {
  45. moveAngle1 -= Math.PI / 180 * 2;
  46. }
  47.  
  48. //camera.position.x = segments[segments.length-1].position.x;
  49. //camera.position.y = segments[segments.length-1].position.y;
  50. //camera.position.z = segments[segments.length-1].position.z;
  51. //camera.lookAt(segments[0].position);
  52.  
  53. segments[0].position.x += Math.cos(moveAngle1) / 100;
  54. segments[0].position.y += Math.sin(moveAngle1) / 100;
  55. //segments[0].position.y += Math.cos(moveAngle2) / 100;
  56. segments[0].position.z += isKeyPressed[87] / 10;
  57. segments[0].position.z -= isKeyPressed[83] / 10;
  58.  
  59. for(let i = 1;i < segments.length;i ++) {
  60. let prev = segments[i-1].position;
  61. let curr = segments[i].position;
  62. curr.x += (prev.x - curr.x) / 10;
  63. curr.y += (prev.y - curr.y) / 10;
  64. curr.z += (prev.z - curr.z) / 10;
  65. }
  66. for(let s1 = 0;s1 < segments.length;s1 ++) {
  67. segments[s1].material.color.setHex(0xffffff);
  68. }
  69. for(let s1 = 0;s1 < segments.length;s1 ++) {
  70. for(let s2 = s1 + 7;s2 < segments.length;s2 ++) {
  71. if(segments[s1].position.distanceTo(segments[s2].position) < 0.2) {
  72. segments[s1].material.color.setHex(0x2e0e33);
  73. segments[s2].material.color.setHex(0x2e0e33);
  74. //console.log("colision");
  75. }
  76. }
  77. }
  78. //segments[0].position.z += moveDirection.z;
  79. }
  80.  
  81. setInterval(grow, 300);
  82.  
  83. function keyup(key) {
  84. // Show the pressed keycode in the console
  85. console.log("Pressed", key);
  86. }
  87. function mouseup() {
  88. // Show coordinates of mouse on click
  89. console.log("Mouse clicked at", mouseX, mouseY);
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement