javascript - p5.j​​s 无法映射 alpha channel

标签 javascript processing.js p5.js

我正在使用 p5.js图书馆。当 mousePressed 被调用时,我想创建一个黑色椭圆,两秒钟后我想直接在上面绘制另一个白色椭圆。我想为第二个白色椭圆上的 alpha channel 设置“动画”,以产生黑色椭圆正在淡出的错觉。

我似乎无法思考如何处理这个问题。我如何创建一个计时器来映射 alpha channel 并在 a = 255 时停止?

 var a;
 var x;
 var y;

function setup() {
    var canvas = createCanvas(windowWidth, windowHeight;

    ellipseMode(RADIUS);
    imageMode(CENTER);
    noStroke();
    background('white');
}

function mousePressed() {
    x = mouseX;
    y = mouseY;

    fill('black');
    ellipse(x, y, 45, 45);
    setTimeout(function() {
         //animate a 

      fill(255, 255, 255, a);
      ellipse(x, y, 45, 45);
    }, 2000)
} 

最佳答案

查看我对这个问题的回答:Capture photos from video after specific time in p5.js

基本上,您不想在 P5.js 代码中使用 setTimeout() 函数。相反,使用每秒调用 60 次的 draw() 函数。如果您需要检查经过了多少时间,请使用 frameCount 变量或 millis() 函数。有关所有这些的更多信息,请参阅 the reference .

下面是一个绘制颜色越来越深的示例程序:

var bgColor = 255;

function setup() { 
  createCanvas(200, 200);
} 

function draw() { 
 background(bgColor);
 if(bgColor > 0){
   bgColor--;
 }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.11/p5.min.js"></script>

关于javascript - p5.j​​s 无法映射 alpha channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45496429/

相关文章:

javascript - 如何获取 Web Sql 错误的上下文?

javascript - javascript中以一定速度跟随鼠标光标的图像

javascript - Processing.js 和 JavaScript 语法

node.js - 在具有多个套接字的 Canvas 上定位

javascript - 使用 p5.js 通过 ajax 从相机上传图像

javascript - 滑动面板 - jQuery

javascript - IP 到国家/地区、城市、纬度、语言 javascript 服务

javascript - 第一次点击html Canvas 时如何防止滚动?

javascript - 通过鼠标悬停操作从图像数组中选择特定图像