实验1作业代码

卡通小黄鸭

       实现:鼠标左击和右击实现图形发生颜色变化,键盘数字1,2,3,4可以控制矩形方向。黄色圆跟随鼠标移动,橙色圆跟随鼠标的点。

int x=60;
int y=180;
int x1 = 50;
int y1 = 150;
int x2 = 50;
int y2= 140;
int radius=5;
float easing = 0.01;

void setup(){
  size(520,480);
}
void draw(){
  strokeWeight(2);
  background(#5ba3da);
  ellipseMode(RADIUS);
  //跟随
  fill(#fc7a46);
  ellipse(mouseX,mouseY,radius,radius);
  if(keyPressed){
   if(key =='1'){
      x1--;
    }else if(key=='2'){
      x1++;
    }
    else if(key=='3'){
      y1++;
  }else{
      y1--;
  }
  }
  rect(x1,y1,50,50);
 
   //手
  stroke(#fddd0e);
  strokeCap(ROUND);
  strokeWeight(18);
  line(x+160,y-20,x+105,y+30);
  line(x+215,y-25,x+275,y+35);
 
  //头
  noStroke();
  fill(#f2b05b);
  int targetX2 = mouseX;
  x2 += (targetX2 - x2) * easing;
  int targetY2 = mouseY;
  y2 += (targetY2 - y2) * easing;
  ellipse(x2+100,y2-70,radius+5,radius+5);
  fill(#fefe2e);
  ellipse(x+190,y-110,radius+5,radius+5);
  ellipse(x+190,y-40,radius+50,radius+50);
 
 //腿
  fill(#ffc378);
  rect(x+200,y+40,x-33,y-90);
  rect(x+160,y+40,x-33,y-90);
  rect(x+198,y+40,x-34,y-90);
  rect(x+158,y+40,x-34,y-90);
  fill(#fe5a01);
  rect(x+200,y+40,x-35,y-90);
  rect(x+160,y+40,x-35,y-90);
 
  //脚
  fill(#ffc378);
  ellipse(x+212,y+130,17,17);
  ellipse(x+172,y+130,17,17);
  fill(#ff5001);
  ellipse(x+212,y+130,16,16);
  ellipse(x+172,y+130,16,16);
 
 //身体
  fill(#fff819);
  quad(x+140,y-10,x+240,y-10,x+250,y+35,x+130,y+35);
  fill(#fcae06);
  arc(x+190,y+30,x,y-130,radians(0),radians(180));
 if(mousePressed){
  if(mouseButton==RIGHT){
  fill(#73bcf3);
  quad(x+140,y-10,x+240,y-10,x+250,y+35,x+130,y+35);
  fill(#0192ff);
  arc(x+190,y+30,x,y-130,radians(0),radians(180));
  }else{
  fill(#f46a68);
  quad(x+140,y-10,x+240,y-10,x+250,y+35,x+130,y+35);
  fill(#ff2c29);
  arc(x+190,y+30,x,y-130,radians(0),radians(180));
  }
}
  //眉毛
  fill(0);
  strokeWeight(5);
  arc(x+178,y-70,x-52,y-177,radians(150),radians(360));
  arc(x+210,y-70,x-52,y-177,radians(150),radians(360));
  //眼睛(判断是否睁眼闭眼)
  fill(0);
  ellipse(x+178,y-50,5,7);
  ellipse(x+208,y-50,5,7);
  if(mousePressed){
  if(mouseButton==LEFT){
  fill(0);
  arc(x+178,y-50,x-52,y-168,radians(180),radians(360));
  arc(x+208,y-50,x-52,y-168,radians(180),radians(360));
  fill(#fefe2e);
  arc(x+178,y-50,x-55,y-173,radians(180),radians(360));
  arc(x+208,y-50,x-55,y-173,radians(180),radians(360));
  ellipse(x+178,y-50,7,8);
  ellipse(x+208,y-50,7,8);
  }
  }
   //腮红
   fill(#fc5717);
   ellipse(x+160,y-40,10,5);
   ellipse(x+228,y-40,10,5);
    
   //嘴巴
   fill(#fc6411);
   ellipse(x+194,y-33,25,10);
 
   //身子
  stroke(#f97c08);
  strokeCap(ROUND);
  strokeWeight(10);
  line(x+135,y-10,x+240,y+50);
 
  //钱包
   noStroke();
  fill(#f97c08);
  ellipse(x+225,y+40,20,20);
 
  stroke(#ffc32e);
  strokeCap(ROUND);
  strokeWeight(5);
  line(x+235,y+20,x+215,y+20);
 
  noStroke();
  fill(#f26604);
  quad(x+210,y+10,x+240,y+10,x+235,y+20,x+215,y+20);
}

 运行结果如图1:

                                           图1

       大家可以复制保存运行看看效果,当然也可以修改,加入自己的想法,具体的左击和右击或者等相关效果图我就不放上去了。(注意:我把一些注释换成了中文,但在processing中中文时不会显示出来的,复制过去发现框框的不要惊慌,没事的,不会报错,不过如果中文不是注释而是其他就会报错了。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦之妹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值