制作鸟在云朵上飞翔的效果,主要是先画好鸟和云朵,然后,让云朵和鸟不停的进行位移。
1 float birdX=500,birdY,cloudX=350; 2 void setup() { 3 size(900, 600); 4 noStroke(); 5 smooth(); 6 } 7 void draw() { 8 background(160, 240, 250); 9 drawbird(birdX, birdY, 0.4); 10 drawcloud(cloudX-300, 380, 0.4,180); 11 drawcloud(cloudX+340, 344, 0.5,180); 12 drawcloud(cloudX, 408, 0.6,200); 13 birdX +=-0.2; 14 birdY =260+30*sin(radians(frameCount/2)); 15 cloudX +=0.1; 16 } 17 void drawbird(float x1, float y1, float sc1) { 18 push(); 19 translate(x1, y1); 20 scale(sc1); 21 //鸟的身体 22 fill(255, 130, 160); 23 beginShape(); 24 curveVertex(-290, 8); 25 curveVertex(-1, -200); 26 curveVertex(335, 34); 27 curveVertex(418, 52); 28 curveVertex(333, 111); 29 curveVertex(-15, 168); 30 curveVertex(-184, -7); 31 curveVertex(-161, -155); 32 curveVertex(-1, -200); 33 curveVertex(202, -123); 34 endShape(); 35 //鸟的眼睛 36 fill(250); 37 circle(-56, -104, 47); 38 fill(0); 39 circle(-60, -105, 40); 40 fill(255); 41 circle(-72, -107, 13); 42 //鸟的嘴 43 fill(180, 50, 80); 44 quad(-247, -46, -193, -88, -171, -55, -192, -29); 45 stroke(0); 46 line(-247, -46, -171, -55); 47 noStroke(); 48 //鸟的翅膀 49 noStroke(); 50 beginShape(); 51 curveVertex(0, 100); 52 curveVertex(0, -120); 53 curveVertex(64, -201); 54 curveVertex(93, -292); 55 curveVertex(148, -239); 56 curveVertex(159, -152); 57 curveVertex(95, -85); 58 curveVertex(26, -84); 59 curveVertex(0, -120); 60 curveVertex(29, -193); 61 endShape(); 62 //鸟的肚子 63 fill(250, 100); 64 beginShape(); 65 curveVertex(0, 173); 66 curveVertex(0, 50); 67 curveVertex(157, 148); 68 curveVertex(31, 173); 69 curveVertex(-49, 156); 70 curveVertex(-123, 96); 71 curveVertex(-108, 76); 72 curveVertex(0, 50); 73 curveVertex(0, 93); 74 endShape(); 75 pop(); 76 } 77 //绘制卡通云 78 void drawcloud(float x, float y, float sc,float tr) { 79 fill(255,tr); 80 push(); 81 translate(x, y); 82 scale(sc); 83 beginShape(); 84 curveVertex(0, -127); 85 curveVertex(0, -227); 86 curveVertex(103, -171); 87 curveVertex(77, -29); 88 curveVertex(158, 5); 89 curveVertex(185, -37); 90 curveVertex(171, -54); 91 curveVertex(163, -47); 92 curveVertex(174, -36); 93 curveVertex(153, -6); 94 curveVertex(89, -31); 95 curveVertex(120, -115); 96 curveVertex(226, -109); 97 curveVertex(257, -25); 98 curveVertex(196, 85); 99 curveVertex(4, 117); 100 curveVertex(-186, 96); 101 curveVertex(-251, -11); 102 curveVertex(-225, -100); 103 curveVertex(-129, -110); 104 curveVertex(-92, -34); 105 curveVertex(-158, -6); 106 curveVertex(-185, -42); 107 curveVertex(-159, -70); 108 curveVertex(-196, -41); 109 curveVertex(-161, 1); 110 curveVertex(-81, -34); 111 curveVertex(-111, -176); 112 curveVertex(0, -227); 113 curveVertex(0, -134); 114 endShape(); 115 pop(); 116 }