Processing:Transparent 图像数组
Processing:Transparent Image Array
我是处理新手,我卡在了这个问题上:
目的:我想做一个透明图片数组,每次mousePressed()后一次显示一个
问题:发生这种情况是因为所有图像都具有 alpha 透明度,它们重叠并且存在累积效应。我想要做的,理想情况下是清除它然后显示另一个图像。
PGraphics pg;
PImage[]
myImageArray = new PImage[12];
void setup() {
//background (255,0);
size(1024, 1024,P2D);
for (int i=0; i<myImageArray.length; i++) {
myImageArray[i] = loadImage( "A-0" + i + ".png");
pg = createGraphics (1000,1000);
}
}
void draw() {
pg.beginDraw ();
pg.image(myImageArray[(int)random(12)], 0, 0, 1000, 1000);
pg.endDraw ();
image(pg,0,0);
noLoop ();
}
void mousePressed() {
pg = createGraphics(1000,1000);
if (frameCount > 1) {
pg.beginDraw ();
pg.clear();
pg.endDraw ();
loop ();
}
}
如有任何建议,我们将不胜感激!
听起来您只是在寻找 background()
函数。 background()
函数通过绘制纯色作为背景来清除旧帧。
您可以在 the reference 中找到更多信息。
我是处理新手,我卡在了这个问题上:
目的:我想做一个透明图片数组,每次mousePressed()后一次显示一个
问题:发生这种情况是因为所有图像都具有 alpha 透明度,它们重叠并且存在累积效应。我想要做的,理想情况下是清除它然后显示另一个图像。
PGraphics pg;
PImage[]
myImageArray = new PImage[12];
void setup() {
//background (255,0);
size(1024, 1024,P2D);
for (int i=0; i<myImageArray.length; i++) {
myImageArray[i] = loadImage( "A-0" + i + ".png");
pg = createGraphics (1000,1000);
}
}
void draw() {
pg.beginDraw ();
pg.image(myImageArray[(int)random(12)], 0, 0, 1000, 1000);
pg.endDraw ();
image(pg,0,0);
noLoop ();
}
void mousePressed() {
pg = createGraphics(1000,1000);
if (frameCount > 1) {
pg.beginDraw ();
pg.clear();
pg.endDraw ();
loop ();
}
}
如有任何建议,我们将不胜感激!
听起来您只是在寻找 background()
函数。 background()
函数通过绘制纯色作为背景来清除旧帧。
您可以在 the reference 中找到更多信息。