我收到了ArrayIndexOutOfBounds 8的错误我不知道为什么 - 我的图片从0开始。线条处理似乎突出显示为image(images[ic], gridX, gridY, stepX, stepY);
任何帮助解决这个问题都会非常有帮助。提前谢谢!
import java.util.Calendar;
PImage[] images = new PImage[8];
int ic;
PImage img;
void setup(){
size(500, 500);
for ( int i = 0; i< images.length; i++ )
{
images[i] = loadImage( i + ".png" ); // make sure images "0.jpg" to "11.jpg" exist
}
}
void draw(){
ic= 0;
float tileCountX =10;
float tileCountY = 10;
float stepX = width/tileCountX;
float stepY = height/tileCountY;
for (float gridY = 0; gridY < height; gridY += stepY){
for (float gridX = 0; gridX < width; gridX += stepX){
image(images[ic], gridX, gridY, stepX, stepY);
ic++;
}
}
}
void keyReleased(){
if (key=='s' || key=='S') saveFrame(timestamp()+"_##.png");
}
// timestamp
String timestamp() {
Calendar now = Calendar.getInstance();
return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS", now);
}
答案 0 :(得分:1)
看看这段代码:
ic= 0;
float tileCountX =10;
float tileCountY = 10;
float stepX = width/tileCountX;
float stepY = height/tileCountY;
for (float gridY = 0; gridY < height; gridY += stepY){
for (float gridX = 0; gridX < width; gridX += stepX){
image(images[ic], gridX, gridY, stepX, stepY);
ic++;
}
}
你的宽度和高度是500,所以内循环将执行500次。你每次都在递增ic。
您正在使用该ic变量索引到您的阵列中 - 但您的阵列只有8个索引,而不是500个。这就是造成错误的原因。
你需要后退一步,试着找出你想要做的事情,因为这段代码并没有多大意义。