注意:我也在处理论坛上问过这个问题。
我有这个示例代码:
PGraphics pg;
void setup() {
size(400, 500);
pg = createGraphics(width, height);
pg.noSmooth();
pg.beginDraw();
pg.background(0, 0, 255);
pg.endDraw();
}
void draw() {
if (mousePressed) {
pg.beginDraw();
pg.stroke(255, 254);
pg.point(mouseX, mouseY);
pg.endDraw();
}
image(pg, 0, 0, width, height);
}
我希望这段代码在用户按下鼠标的任何地方都显示一个点。相反,我只能看到几个矩形区域中的点:
如果我删除调用pg.noSmooth()
或删除调用中的 alpha 值pg.stroke()
,那么它可以正常工作:
如果我用or替换pg.point()
呼叫,那么它也可以正常工作。pg.ellipse()
pg.rect()
似乎使用 a PGraphics
、noSmooth()
函数、point()
函数和 alpha 值的组合会导致这种错误行为。我在 Processing 3.3 和 Processing 3.5.2 中尝试过,我看到两者的行为相同。
我错过了一些明显的东西吗?