首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(处理)当所有像素从另一个PGraphics复制时,PGraphics不会更新

(处理)当所有像素从另一个PGraphics复制时,PGraphics不会更新
EN

Stack Overflow用户
提问于 2013-05-17 17:22:14
回答 1查看 866关注 0票数 1

我对PGraphics有一个小问题。我有以下一段代码,摘自我正在工作的更大的项目:

代码语言:javascript
复制
int x=0;
int y=0;

PGraphics array1;
PGraphics array2;

void setup() {
  size(200,200);
  background(0);
  array1 = createGraphics(200,200);
  array2 = createGraphics(200,200);
  frameRate(10);
}

void draw() {
  array1.beginDraw();
  array1.background(0);
  array1.noStroke();
  array1.fill(150);
  array1.ellipse(x,y,20,20);
  array1.endDraw();

  array1.loadPixels();
  array2.loadPixels();

  //presence of two below lines doesn't change anything
  array1.updatePixels();
  array2.updatePixels();

  //not by arrayCopy since I want to add filters in next project
  for(int i=0; i<200*200; i++) {
    array2.pixels[i] = array1.pixels[i];
  }

  //presence of two below lines doesn't change anything
  array1.updatePixels();
  array2.updatePixels();

  //I want to see only the array2 - now it should be the same as array1
//  image(array1, 0,0);
  image(array2, 0,0);

  //presence of two below lines doesn't change anything
  array1.updatePixels();
  array2.updatePixels();

  x++;
  y++;

}

一般来说,我希望将PGraphics array1复制到PGraphics array2中。但是,array2看起来像第一帧中的array1,并且视觉效果不会更新。当我添加以下内容时:

代码语言:javascript
复制
println(array1.pixels[0]+" "+array2.pixels[0]);

它打印:

代码语言:javascript
复制
...
-6908266 -6908266
-6908266 -6908266
-6908266 -6908266
-16777216 -16777216
-16777216 -16777216
...

所以很明显,两个数组包含相同的值。我不知道为什么我看不到更新后的array2。

根据文档,我尝试了放置在不同位置的updatePixels方法,但这没有任何帮助。

我错过了什么?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-18 06:10:51

您忘记了为array2 PGraphic调用beginDraw()和endDraw()。如果您这样做了:

代码语言:javascript
复制
array2.beginDraw(); // HERE!!
  for (int i= 0; i<array1.pixels.length; i++) {
    array2.pixels[i] = array1.pixels[i];
  }
  array2.updatePixels();
array2.endDraw(); // and HERE!! :)

它应该像预期的那样工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16605604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档