Guest User

Untitled

a guest
Dec 11th, 2019
117
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Snowy Christmas Tree
  2. // By Christan Shaw and Jacob Carey
  3.  
  4. /* Snow with a christmas tree and lights
  5. When the user clicks, the lights on the tree changes */
  6.  
  7. //Snow Varibles
  8. int number_of_snow = 100;
  9. float[] snow_x = new float[number_of_snow];
  10. float[] snow_y = new float[number_of_snow];
  11. float snow_size = 5;
  12. float snow_speed = 1;
  13.  
  14. //Tree Varibles
  15. color light_colour = color(255, 0, 0);
  16. boolean cycle_colours = false;
  17. int cycle_rate = 15;
  18. int r = 255;
  19. int g = 0;
  20. int b = 0;
  21.  
  22. void setup() {
  23. size(600,400);
  24. frameRate(60);
  25. background(52);
  26.  
  27. // Snow Init
  28. for (int i=0; i < snow_x.length; i=i+1) { // Create random x cords
  29. snow_x[i] = random(1, width);
  30. }
  31. for (int i=0; i< snow_y.length; i=i+1) { // Create random y cords
  32. snow_y[i] = random(1, height);
  33. }
  34. }
  35.  
  36. void draw_snow() { // Draws snow according to the varibles
  37. fill(255); // White snow with no stroke
  38. noStroke();
  39. for (int i=0; i < snow_x.length; i=i+1) { // Goes through the snow array to draw them
  40. ellipse(snow_x[i], snow_y[i], snow_size, snow_size); // Circle for the snow
  41. }
  42. }
  43.  
  44. void update_snow() { // Adds 'snow_speed' to every snow_y, if the snow_y is lowwer than the lenght it then puts it at the top and puts a random x cord.
  45. for (int i=0; i < snow_y.length; i=i+1) {
  46. if (snow_y[i] >= height+5) {
  47. snow_y[i] = 0;
  48. snow_x[i] = random(1, width);
  49. } else {
  50. snow_y[i] = snow_y[i] + 1;
  51. }
  52. }
  53. }
  54.  
  55. void draw_tree() {
  56. //Tree pieces
  57. fill(139, 69, 19); //Trunk Colour
  58. rect(265, 350, 70, 100); //Trunk
  59. fill(0, 255, 0); //Branches Colour
  60. triangle(300, 50, 250, 110, 350, 110); //Uppermost Branches
  61. triangle(300, 90, 210, 180, 390, 180); //Second to top Branches
  62. triangle(300, 150, 170, 270, 430, 270); //Third to top Branches
  63. triangle(300, 220, 130, 360, 470, 360); //Lowermost Branches
  64. fill(light_colour);
  65. stroke(2);
  66. circle(305, 70, 10);
  67. circle(280, 90, 10);
  68. circle(330, 140, 10);
  69. circle(320, 160, 10);
  70. circle(260, 150, 10);
  71. circle(265, 220, 10);
  72. circle(230, 240, 10);
  73. circle(360, 230, 10);
  74. circle(360, 300, 10);
  75. circle(210, 330, 10);
  76. circle(290, 320, 10);
  77. }
  78.  
  79. void mouseClicked(){
  80. if(cycle_colours){
  81. cycle_colours = false;
  82. light_colour = color(255, 0, 0);
  83. r = 255;
  84. g = 0;
  85. b = 0;
  86. }
  87. else if(!cycle_colours){
  88. cycle_colours = true;
  89. }
  90. }
  91. void draw() {
  92. clear();
  93. background(52);
  94.  
  95. //Tree
  96. draw_tree();
  97.  
  98. //Snow
  99. draw_snow();
  100. update_snow();
  101.  
  102. //Light Color Cycling
  103.  
  104. if(cycle_colours){
  105. light_colour = color(r, g, b);
  106. if(r < 255 && g == 0 && b == 0){
  107. r += cycle_rate;
  108. }
  109. if(r == 255 && g < 255 && b == 0){
  110. g += cycle_rate;
  111. }
  112. if(r > 0 && g == 255 && b == 0){
  113. r -= cycle_rate;
  114. }
  115. if(r == 0 && g == 255 && b < 255){
  116. b += cycle_rate;
  117. }
  118. if(r == 0 && g > 0 && b == 255){
  119. g -= cycle_rate;
  120. }
  121. if(r < 255 && g == 0 && b == 255){
  122. r += cycle_rate;
  123. }
  124. if(r == 255 && g == 0 && b > 0){
  125. b -= cycle_rate;
  126. }
  127. }
  128. }
RAW Paste Data