2

注:こちらの Processing フォーラムでもこの質問をしました。

私はこのサンプルコードを持っています:

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()か、呼び出しでアルファ値を削除するpg.stroke()と、正常に動作します。

作業ウィンドウ

pg.point()呼び出しをpg.ellipse()orに置き換えると、正常にpg.rect()動作します。

PGraphicsnoSmooth()関数、point()関数、およびアルファ値を組み合わせて使用​​すると、このバグのある動作が発生するようです。Processing 3.3 と Processing 3.5.2 で試しましたが、両方で同じ動作が見られます。

明らかな何かが欠けていますか?

4

1 に答える 1