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



我正在尝试用Java编写一个简单的游戏,它使用Processing来渲染图形。但是,我在使用updatePixels()呈现任何更改时遇到了问题。我可以成功地设置背景颜色并绘制基本的2d形状,但我从编辑pixel[]变量或使用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();
  }
}

当我初始化()这个类时,我在黑色屏幕上得到一个白色椭圆,而不是红色像素的屏幕(这正是我所期望的)。像素[]阵列肯定在那里,因为我已经打印出来了,我没有得到任何错误。我做错了什么?

此行:

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

仅更改包含副本的局部变量p(如果像素值。

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

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

最新更新