执行一个功能5秒

时间:2017-12-20 16:13:26

标签: javascript processing p5.js

我正在尝试在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);

Working Example

注意:使用p5.js库

1 个答案:

答案 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();
}

在此示例中,只要您单击,该栏就会重新启动。

http://alpha.editor.p5js.org/gpetrioli/sketches/SyibBz_ff

的工作示例