国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

p5.js入門教程之平滑過渡(Easing)

2024-05-06 15:20:38
字體:
供稿:網(wǎng)友

一、跟隨鼠標移動的小球

使用mouseX,mouseY可以創(chuàng)建一個跟隨鼠標移動的小球。

function setup() {   createCanvas(400, 400);   }   function draw() {  background(220);  ellipse(mouseX,mouseY,20,20); } 

二、讓小球更加平滑的移動——使用Easing

一般制作精良的UI界面都會用到平滑移動這一效果,也就是利用了名為“Easing”的方法。

實現(xiàn)思路是另外設置變量以進行位置的過渡,代碼如下:

var x=0; var y=0; var targetX=0; var targetY=0; var easing=0.1; function setup() {   createCanvas(400, 400);  x=mouseX;  y=mouseY; }   function draw() {  background(220);  targetX=mouseX;  targetY=mouseY;  x+=(targetX-x)*easing;  y+=(targetY-y)*easing;  ellipse(x,y,20,20); } 

easing的值越大,跟隨的速度會越快。

最終效果:https://alpha.editor.p5js.org/full/Sy96bL-8b

三、按鈕變色Easing

當然,不僅僅是在物體運動,一切涉及數(shù)值變化的都可以使用Easing來進行過渡。

以下代碼是一個按鈕,當鼠標移到上方時,會逐漸變色,也是用了Easing進行過渡。

var rectX=0; var rectY=0; var rectHeight=100*0.618; var rectWidth=100; var hoverR=255; var hoverG=128; var hoverB=128 var exitR=255; var exitG=255; var exitB=255; var R=0; var G=0; var B=0; var ease=0.1;  function setup() {   createCanvas(400, 400);  rectX=width/2;  rectY=height/2;  R=exitR;  G=exitG;  B=exitB; }   function draw() {   background(220);  if(mouseX>=rectX-rectWidth/2 && mouseX<=rectX+rectWidth/2&&    mouseY>=rectY-rectHeight/2 && mouseY<=rectY+rectHeight/2){   R+=(hoverR-R)*ease;   G+=(hoverG-G)*ease;   B+=(hoverB-B)*ease;  }else{   R+=(exitR-R)*ease;   G+=(exitG-G)*ease;   B+=(exitB-B)*ease;  }  fill(R,G,B);  rectMode(CENTER);  rect(rectX,rectY,rectWidth,rectHeight,8); } 

最終效果:http://alpha.editor.p5js.org/full/BJuEqvW8W

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 朝阳区| 阿拉善盟| 溆浦县| 雷州市| 鲜城| 乐陵市| 长岭县| 禹州市| 英超| 禄劝| 宜兰市| 南召县| 隆化县| 承德市| 喀什市| 凤台县| 彩票| 偏关县| 文成县| 佛学| 彩票| 邮箱| 攀枝花市| 扶绥县| 八宿县| 鹤庆县| 大石桥市| 禄丰县| 忻城县| 绥江县| 崇仁县| 宜川县| 沽源县| 西盟| 家居| 张家口市| 福海县| 饶阳县| 鄱阳县| 安阳县| 房产|