```java // ===================== 奶龙 Nailong ===================== // Processing 里点 Run ▶ 即可;瞳孔会跟着鼠标转 color YELLOW = #FFCE45; // 主体黄 color DEEP = #EDAB1F; // 犄角 color CREAM = #FFF1B8; // 肚皮 color BLUSH = #FF8E8E; // 腮红 color MOUTH = #5D3A1A; // 口腔 color TONGUE = #FF8A80; // 舌头 color INK = #4A3319; // 五官深棕 void setup() { size(600, 600); } void draw() { background(228, 242, 255); drawCloud(80, 110, 1.0); // 同一个函数画两朵云,只换参数 drawCloud(420, 65, 0.8); // 地上的影子(不跟着飘,才显出"悬浮感") noStroke(); fill(205, 218, 235); ellipse(300, 578, 250, 36); pushMatrix(); translate(0, sin(frameCount * 0.05) * 6); // 整体上下轻飘 drawBody(); drawHead(); popMatrix(); } // ---------------- 身体 ---------------- void drawBody() { noStroke(); fill(YELLOW); // 胳膊 ellipse(172, 440, 55, 95); ellipse(428, 440, 55, 95); // 身子 ellipse(300, 465, 235, 205); // 肚皮 fill(CREAM); ellipse(300, 495, 145, 125); // 脚丫 fill(YELLOW); ellipse(245, 560, 80, 50); ellipse(355, 560, 80, 50); } // ---------------- 头 ---------------- void drawHead() { noStroke(); // 犄角(先画,一半藏在头后面) drawHorn(205, 100, -1); drawHorn(395, 100, 1); // 脸 fill(YELLOW); ellipse(300, 280, 370, 320); // 五官 drawEye(225, 255); drawEye(375, 255); // 鼻孔 fill(INK); ellipse(288, 315, 10, 14); ellipse(312, 315, 10, 14); // 张嘴笑:arc 只画下半圆 fill(MOUTH); arc(300, 322, 120, 100, 0, PI); fill(TONGUE); arc(300, 348, 64, 36, 0, PI); // 小舌头 // 腮红 fill(BLUSH, 150); ellipse(155, 330, 52, 32); ellipse(445, 330, 52, 32); } // ---------------- 零件 ---------------- void drawEye(float x, float y) { fill(255); stroke(INK); strokeWeight(5); ellipse(x, y, 75, 95); // 眼白 noStroke(); // 瞳孔跟着鼠标转 float dx = mouseX - x; float dy = mouseY - y; float d = sqrt(dx*dx + dy*dy); float px = x; float py = y + 12; // 鼠标没动时往下看,呆萌 if (d > 1) { px = x + dx / d * 14; py = y + 12 + dy / d * 15; } fill(INK); ellipse(px, py, 30, 38); // 瞳孔 fill(255); ellipse(px - 8, py - 11, 11, 13); // 高光 ellipse(px + 7, py + 7, 6, 7); } void drawHorn(float x, float y, float side) { // side: -1 左, 1 右 pushMatrix(); translate(x, y); rotate(radians(side * 25)); // 往两边歪的小犄角 fill(DEEP); ellipse(0, 0, 42, 85); popMatrix(); } void drawCloud(float x, float y, float s) { // s 控制云的大小 noStroke(); fill(255, 255, 255, 230); ellipse(x, y, 90*s, 55*s); ellipse(x + 55*s, y - 18*s, 70*s, 48*s); ellipse(x + 110*s, y, 85*s, 50*s); } ``` Loading... ```java // ===================== 奶龙 Nailong ===================== // Processing 里点 Run ▶ 即可;瞳孔会跟着鼠标转 color YELLOW = #FFCE45; // 主体黄 color DEEP = #EDAB1F; // 犄角 color CREAM = #FFF1B8; // 肚皮 color BLUSH = #FF8E8E; // 腮红 color MOUTH = #5D3A1A; // 口腔 color TONGUE = #FF8A80; // 舌头 color INK = #4A3319; // 五官深棕 void setup() { size(600, 600); } void draw() { background(228, 242, 255); drawCloud(80, 110, 1.0); // 同一个函数画两朵云,只换参数 drawCloud(420, 65, 0.8); // 地上的影子(不跟着飘,才显出"悬浮感") noStroke(); fill(205, 218, 235); ellipse(300, 578, 250, 36); pushMatrix(); translate(0, sin(frameCount * 0.05) * 6); // 整体上下轻飘 drawBody(); drawHead(); popMatrix(); } // ---------------- 身体 ---------------- void drawBody() { noStroke(); fill(YELLOW); // 胳膊 ellipse(172, 440, 55, 95); ellipse(428, 440, 55, 95); // 身子 ellipse(300, 465, 235, 205); // 肚皮 fill(CREAM); ellipse(300, 495, 145, 125); // 脚丫 fill(YELLOW); ellipse(245, 560, 80, 50); ellipse(355, 560, 80, 50); } // ---------------- 头 ---------------- void drawHead() { noStroke(); // 犄角(先画,一半藏在头后面) drawHorn(205, 100, -1); drawHorn(395, 100, 1); // 脸 fill(YELLOW); ellipse(300, 280, 370, 320); // 五官 drawEye(225, 255); drawEye(375, 255); // 鼻孔 fill(INK); ellipse(288, 315, 10, 14); ellipse(312, 315, 10, 14); // 张嘴笑:arc 只画下半圆 fill(MOUTH); arc(300, 322, 120, 100, 0, PI); fill(TONGUE); arc(300, 348, 64, 36, 0, PI); // 小舌头 // 腮红 fill(BLUSH, 150); ellipse(155, 330, 52, 32); ellipse(445, 330, 52, 32); } // ---------------- 零件 ---------------- void drawEye(float x, float y) { fill(255); stroke(INK); strokeWeight(5); ellipse(x, y, 75, 95); // 眼白 noStroke(); // 瞳孔跟着鼠标转 float dx = mouseX - x; float dy = mouseY - y; float d = sqrt(dx*dx + dy*dy); float px = x; float py = y + 12; // 鼠标没动时往下看,呆萌 if (d > 1) { px = x + dx / d * 14; py = y + 12 + dy / d * 15; } fill(INK); ellipse(px, py, 30, 38); // 瞳孔 fill(255); ellipse(px - 8, py - 11, 11, 13); // 高光 ellipse(px + 7, py + 7, 6, 7); } void drawHorn(float x, float y, float side) { // side: -1 左, 1 右 pushMatrix(); translate(x, y); rotate(radians(side * 25)); // 往两边歪的小犄角 fill(DEEP); ellipse(0, 0, 42, 85); popMatrix(); } void drawCloud(float x, float y, float s) { // s 控制云的大小 noStroke(); fill(255, 255, 255, 230); ellipse(x, y, 90*s, 55*s); ellipse(x + 55*s, y - 18*s, 70*s, 48*s); ellipse(x + 110*s, y, 85*s, 50*s); } ``` 最后修改:2026 年 09 月 08 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏