Cell[][] grid; int cols = 10; int rows = 10; void setup(){ size(200, 200); grid = new Cell[cols][rows]; for(int i = 0; i < cols; i ++){ for(int j = 0; j < rows; i ++){ grid[i][j] = new Cell(i*20, j*20, 20, 20, i+j); } } } void draw(){ background(0); for(int i = 0; i < cols; i ++){ for(int j = 0; j < rows; i ++){ grid[i][j].oscillate(); grid[i][j].display(); } } } class Cell{ float x; float y; float w; float h; float angle; Cell(float x_, float y_, float w_, float h_, float angle_){ x = x_; y = y_; w = w_; h = h_; angle = angle_; } void oscillate(){ angle += 0.02; } void display(){ stroke(255); float bright = map(sin(angle), -1, 1, 0, 255); fill(bright); rect(x, y, w, h); } }这段代码的问题怎么解决
时间: 2023-06-19 17:08:27 浏览: 59
浅析IE10兼容性问题(frameset的cols属性)
在两个 for 循环中,第二个循环中的 i 和 j 的自增应该改为 j++,而不是 i++。所以代码应该改为:
```
for(int i = 0; i < cols; i++){
for(int j = 0; j < rows; j++){
grid[i][j] = new Cell(i*20, j*20, 20, 20, i+j);
}
}
```
同样的,第二个 for 循环中也应该将 i++ 改为 j++,即:
```
for(int i = 0; i < cols; i++){
for(int j = 0; j < rows; j++){
grid[i][j].oscillate();
grid[i][j].display();
}
}
```
这样就可以正常运行了。
阅读全文