package net.gfx;
public class TileSet {
public final int TILES = 627;
class Tiles {
int x = 0, y = 0;
int w = 0, h = 0;
}
public Tiles tiles[] = new Tiles[TILES];
public TileSet() {
for (int i = 0, y = 0; i < TILES; i++) {
for (int x = 0; x < 1280; x =+ 25) {
if (x > 1280) {
x = 0;
y += 40;
}
tiles[i] = new Tiles(); //Program Freezes here
tiles[i].x = x;
tiles[i].y = y;
tiles[i].w = 40;
tiles[i].h = 40;
}
}
}
}
我要做的是基本上在屏幕上创建一个瓷砖阵列。我已经修复了原来的错误 Error Setting Object Array Values但现在它在我运行时会冻结。代码中的更多细节。
答案 0 :(得分:4)
= +不是java运算符。您每次在x循环中将x设置为值25。所以你永远不会遇到x&gt; 1280因为每次循环(第一次除外)x都是25.你应该使用+ =运算符,如果你希望每次循环x增加25。
答案 1 :(得分:1)
for的最后一个条款是问题。它是x =+ 25
。如果我们稍微摆动空格,我们就会发现它与x = +25
相同。是的,每次x
设置为正25.你得到了=
和+
错误的方法。如果将其替换为x += 25
,则应解决您的问题。