我一直在研究java游戏引擎,但我的渲染不断得到无法访问的代码错误。错误出现在setPixels方法中。
{{1}}
答案 0 :(得分:1)
我认为这是你要做的事情?
您的if
语句不应包含函数中的所有语句。
public void setPixel(int x, int y, float a, float r, float g, float b){
// Check for invalid values
if((x < 0 || x>= width || y < 0 || y>= height) || a == 0){
// Break out of function if invalid values detected
return;
}
// Update pixel
int index = (x + y * width) * 4;
pixels[index] = (byte)((a * 255f) + 0.5f);
pixels[index + 1] = (byte)((b * 255f) + 0.5f);
pixels[index + 2] = (byte)((g * 255f) + 0.5f);
pixels[index + 3] = (byte)((r * 255f) + 0.5f);
}
答案 1 :(得分:0)
return
语句结束方法的执行。如果在下面的代码中运行if
语句,则该方法将在return
之前结束并在执行所有其他操作之前结束。您似乎不需要在return
中使用setPixel
语句,因为不需要提前终止该方法。
public void setPixel(int x, int y, float a, float r, float g, float b) {
if((x < 0 || x>= width || y < 0 || y>= height) || a == 0){
//return;
int index = (x + y * width) * 4;
pixels[index] = (byte)((a * 255f) + 0.5f);
pixels[index + 1] = (byte)((b * 255f) + 0.5f);
pixels[index + 2] = (byte)((g * 255f) + 0.5f);
pixels[index + 3] = (byte)((r * 255f) + 0.5f);
}
}