在processing.js中,如何在P3D模式下将图像覆盖在另一个图像上?
这是我的代码:
/* @pjs preload="duck.jpg"; */
/* @pjs preload="a.png"; */
PImage imageDuck;
PImage imageA;
void setup() {
size(500, 500, P3D);
imageDuck = loadImage("duck.jpg");
imageA = loadImage("a.png");
}
void draw() {
background(255);
noStroke();
image(imageDuck, 0, 0);
image(imageA, 0, 0);
}
那么代码试图做的是显示一个鸭子图像,然后在其上覆盖另一个图像名称a.png(透明背景)。
当我使用普通的尺寸(500,500); 而没有P3D模式时,图像叠加效果非常好。
但是,我正在使用P3D,因为我接下来要做的就是将图像一起旋转。
所以在这个尺寸(500,500,P3D)模式下,我可以看到我的a.png闪过一次,然后只有我的鸭子图像显示。如果我评论鸭子,a.png会显示。如果我评论出一个a.png,我的鸭子就会显示出来。如果我重新排序图像()调用,仍然只显示鸭图像。我在我的image()调用之间添加了translate(0,0,-1)或translate(0,0,1),没有运气,只有我的鸭子图像显示。
这甚至可能吗?
答案 0 :(得分:1)
我解决了我的问题,它是@pjs的第一行,只能被调用一次。必须在一行内预加载多个图像。在我的例子中,我的前两行必须像这样组合:
/* @pjs preload="duck.jpg,a.png"; */