我正在尝试用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()这个类时,我在黑色屏幕上得到一个白色椭圆,而不是红色像素的屏幕(这是我所期待的)。 像素[]数组肯定存在,因为我已经打印出来了,我没有错误。 我做错了什么?
答案 0 :(得分:1)
这一行:
p = this.color(255, 0, 0);
仅更改局部变量p
,其中包含像素值的副本。
您想要的是修改pixels
数组中的值,如:
for (int i = 0 ; i < pixels.length ; i++) {
pixels[i] = color(255, 0, 0);
}