我正在尝试在p5.js中添加一个加载栏,我在顶部有一个像YouTube加载栏一样的栏。
喜欢这样
var x = 0;
function setup() {
createCanvas(400, 400);
x = width;
}
function draw() {
background(220);
stroke(255,0,0);
strokeWeight(10);
line(0,0,x,0);
}
我想使用map()
函数来减少线条的宽度。
map(x, width , 0 , second(),second()+5);
注意:使用p5.js库
答案 0 :(得分:1)
首先,x
不应与width
相等。它应该从0
开始,然后才会根据时间进行更新。
其次second()
返回当前时间的实际秒数,因此对于这种情况不利。最好使用millis()
,它返回自项目开始以来的毫秒数。
最后你使用的map
参数错误(或者至少我不明白你要传递的是你传递的命令)
x = map(millis(), 0, 5000, 0 , width);
以上内容将毫秒范围0 - 5000
( 0到5秒)映射到画布的0 - width
。
为了能够随时初始化条形,然后使用变量作为值范围的开始/结束值。
var x,
startAt;
function setup() {
createCanvas(400, 400);
startAt = millis();
}
function draw() {
background(220);
stroke(255, 0, 0);
strokeWeight(10);
x = map(millis(), startAt, startAt + 5000, 0, width);
line(0, 0, x, 0);
}
function mouseClicked() {
startAt = millis();
}
在此示例中,只要您单击,该栏就会重新启动。
的工作示例