【问题标题】:making image go to zero oppacity after certain conditions are met在满足某些条件后使图像不透明度为零
【发布时间】:2014-01-29 21:34:05
【问题描述】:

我正在使用程序处理并偶然发现了一个困难。 当试图在一定时间后使图像着色以使其透明时,它不会这样做,我到目前为止:

import ddf.minim.*;

Minim minim;
AudioInput in;

PImage img;
int a = 125;//geluidswaarde
int fade = 0;//beginfade grote fade is zwarter
int stmin = 2; //fadestapje donkerder
int stplus = 10; //fadestapje lichter
float gw = 0.04;//gevoeligheid kleiner = gevoeliger
int trmin = 10; // transparanter
int trplus = 20; // voller
int A = 0;

void setup() {
  img = loadImage("leegte.jpg");

  size(1000, 1000);
  frameRate(10); // Maximum 30 frames/beelden per seconde (speel hier gerust even mee)
  image(img, 0, 0);
  minim = new Minim(this); 
  // get a line in from Minim, default bit depth is 16
  in = minim.getLineIn(Minim.STEREO, 640);
}

void draw() {

  image(img, 0, 0);
  fill(255);
  rect(0, 0, 1000, 1000);

  if (abs(in.left.get(a))> (gw)) {
    fade = fade-stplus;
  }
  else {
    fade = fade+stmin;
  }
  fade = constrain(fade, 0, 300);
  fill(0, fade);
  rect(0, 0, 1000, 1000);

  while (fade>=300)
  {
    --A;
    tint(0, A);
  }
}





void stop()



{
  // always close Minim audio classes when you are done with them
  in.close();
  minim.stop();

  super.stop();
}

问题出在

while (fade>=300)
  {
    --A;
    tint(0, A);
  }

部分,在图像达到淡入淡出(0,300)后,我希望它开始着色,使其从 255 不透明度变为 0,但是,它只是坐在那里,之后什么都不做,非常感谢任何帮助。

【问题讨论】:

    标签: if-statement while-loop processing tint


    【解决方案1】:

    看起来您可能会陷入无限循环。只要fade 大于或等于300,你就告诉它循环。但是,您没有在循环内修改 fade,因此它的值永远不会改变。这意味着它永远不会低于300,因此循环永远不会结束。

    也许你的意思是你的循环体看起来像这样:

    A = fade;
    while (A >= 300)
    {
        --A;
        tint(0, A);
    }
    

    还值得注意的是,仅在对draw() 的任何给定调用完全完成后才会更新显示。这意味着在这样的循环内重复调用tint()(或任何其他绘图函数)不会有任何效果。最后一个调用是唯一具有可见效果的调用。相反,您需要在每次调用 draw() 时递减并应用 A。

    最后,我认为tint() 只会影响后续图像;即它不会影响屏幕上已有的内容。或许您应该尝试在 draw() 的开头设置色调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 2020-12-06
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      相关资源
      最近更新 更多