孤独的猫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

制作鸟在云朵上飞翔的效果,主要是先画好鸟和云朵,然后,让云朵和鸟不停的进行位移。

  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 }

 

posted on 2024-06-10 10:38  孤独的猫  阅读(16)  评论(0)    收藏  举报