我正在尝试用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);
}