使用Processing库在Java应用程序中使用updatePixels()时遇到问题

时间:2011-06-02 05:54:36

标签: java processing

我正在尝试用Java编写一个使用Processing来渲染图形的简单游戏。但是,我无法使用updatePixels()呈现任何更改。我可以成功设置背景颜色并绘制基本的2d形状,但是我没有从编辑pixels []变量或使用set(x,y,color)得到任何东西。

这是我的(删节)代码:

import processing.core.*;

public class GameController extends PApplet {
  private int width, height;

  private final static String RENDER_MODE = PConstants.P2D; //JAVA2D;

  public GameController(int width, int height) {
    this.width = width;
    this.height = height - this.getBounds().y;
  }

  @Override
  public void setup() {
    this.size(this.width, this.height, RENDER_MODE);
    this.background(0);
  }

  @Override
  public void draw() {
    this.ellipse(50, 50, 100, 10);

    this.loadPixels();
    for (int p : this.pixels) {
      p = this.color(255, 0, 0);
    }
    this.updatePixels();
  }
}

当我在init()这个类时,我在黑色屏幕上得到一个白色椭圆,而不是红色像素的屏幕(这是我所期待的)。 像素[]数组肯定存在,因为我已经打印出来了,我没有错误。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

这一行:

p = this.color(255, 0, 0);

仅更改局部变量p,其中包含像素值的副本。

您想要的是修改pixels数组中的值,如:

for (int i = 0 ; i < pixels.length ; i++) {
    pixels[i] = color(255, 0, 0);
}