Advertisement
Thenlie

Untitled

Jan 17th, 2024
803
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const canvas = document.getElementById("canvas");
  2. const ctx = canvas.getContext("2d");
  3. canvas.width = 1000;
  4. canvas.height = 800;
  5.  
  6. function circle_factory(name, circle_var, x, y, start, end, color, income) {
  7.     circle_var = new Path2D()
  8.     circle_var.arc(x, y, 50, start, end * Math.PI);
  9.     ctx.fillStyle = color;
  10.     circle_var.closePath()
  11.     ctx.fill(circle_var);
  12.  
  13.     this.name = name;
  14.     this.circle_var = circle_var
  15.     this.x = x
  16.     this.y = y
  17.     this.start = start
  18.     this.end = end
  19.     this.color = color
  20.     this.income = income
  21.     this.click = 1
  22. }
  23.  
  24. var circle_1 = new circle_factory('one', circle_1, 250, 75, 0, 2, 'violet')
  25. var circle_2 = new circle_factory('two', circle_2, 380, 75, 0, 2, 'gray')
  26. var circle_3 = new circle_factory('three', circle_3, 510, 75, 0, 2, 'gray')
  27. var circle_4 = new circle_factory('four', circle_4, 640, 75, 0, 2, 'gray')
  28. var circle_5 = new circle_factory('five', circle_5, 250, 205, 0, 2, 'gray')
  29. var circle_6 = new circle_factory('six', circle_6, 380, 205, 0, 2, 'gray')
  30.  
  31. var circle_array = [];
  32. var circle_array_standard = [];
  33.  
  34. circle_array.push(circle_1.circle_var, circle_2.circle_var, circle_3.circle_var, circle_4.circle_var, circle_5.circle_var, circle_6.circle_var)
  35. circle_array_standard.push(circle_1, circle_2, circle_3, circle_4, circle_5, circle_6);
  36. collected_elements = []
  37. collected_elements.push('circle_1', 'circle_2', 'circle_3')
  38. var selected = [];
  39.  
  40.  
  41. canvas.addEventListener("click", function(event) {
  42.     var c_1_click = ctx.isPointInPath(circle_1.circle_var, event.offsetX, event.offsetY)
  43.     var c_2_click = ctx.isPointInPath(circle_2.circle_var, event.offsetX, event.offsetY)
  44.     var c_3_click = ctx.isPointInPath(circle_3.circle_var, event.offsetX, event.offsetY)
  45.     var c_4_click = ctx.isPointInPath(circle_4.circle_var, event.offsetX, event.offsetY)
  46.     var c_5_click = ctx.isPointInPath(circle_5.circle_var, event.offsetX, event.offsetY)
  47.     var c_6_click = ctx.isPointInPath(circle_6.circle_var, event.offsetX, event.offsetY)
  48.  
  49.     for (var i = 0; i <= circle_array.length - 1; i++) {
  50.         if (circle_array[i] && ctx.isPointInPath(circle_array[i], event.offsetX, event.offsetY)) {
  51.             //$('#comments').append("<p>It works</p>");
  52.             ctx.fillStyle = 'orange';
  53.             ctx.fill(circle_array[i]);
  54.  
  55.             if (!collected_elements.includes('circle_7')) {
  56.                 collected_elements.push('circle_7')
  57.                 var circle_7 = new circle_factory('seven', circle_7, 580, 205, 0, 2, 'blue')
  58.                 var c_7_click = ctx.isPointInPath(circle_7.circle_var, event.offsetX, event.offsetY)
  59.  
  60.                 if (!circle_array.includes(circle_7.circle_var)) {
  61.                     console.log('doesnt include', circle_array, ' ', circle_array_standard)
  62.                     circle_array.push(circle_7.circle_var)
  63.                     circle_array_standard.push(circle_7)
  64.                     console.log('circle array: ', circle_array, 'circle standard: ', circle_array_standard)
  65.                 }
  66.             }
  67.  
  68.             if (selected.length == 0) {
  69.                 selected.push(circle_array_standard[i]);
  70.                 ctx.fillStyle = 'green';
  71.                 ctx.fill(selected[0].circle_var);
  72.             } else if (selected.length == 1) {
  73.                 selected.push(circle_array_standard[i]);
  74.  
  75.                 ctx.fillStyle = 'yellow';
  76.                 ctx.fill(selected[1].circle_var);
  77.                 console.log('sel 1 is ', selected[1]);
  78.  
  79.             }
  80.  
  81.             if (c_7_click) {
  82.                 console.log('blue circle')
  83.             }
  84.         }
  85.     } /*end for loop*/
  86.  
  87.     function reset() {
  88.         if (!c_1_click && !c_2_click && !c_3_click && !c_4_click && !c_5_click && !c_6_click && !c_7_click) {
  89.             console.log('first reset')
  90.  
  91.             if (typeof selected[0] !== 'undefined') {
  92.                 console.log('this ', selected[0].income)
  93.                 if (typeof selected[1] != 'undefined') {
  94.                     ctx.fillStyle = selected[0].color;
  95.                     ctx.fill(selected[0].circle_var);
  96.                     ctx.fillStyle = selected[1].color;
  97.                     //ctx.fillStyle = circle_7.circle_var;
  98.                     ctx.fill(selected[1].circle_var);
  99.                     selected.length = 0;
  100.                 }
  101.             }
  102.         };
  103.     }
  104.     reset()
  105. }); // end event listener
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement