1
    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但现在当我运行它时它会冻结。代码中的更多细节。

4

2 回答 2

4

=+ 不是 java 运算符。每次在 x 循环中,您都将 x 设置为值 25。因此,您永远不会遇到 x > 1280 的情况,因为每次通过循环(第一个除外)x 将是 25。如果您希望每次通过循环将 x 增加 25,则应使用 += 运算符。

于 2013-09-06T00:00:53.647 回答
1

for 的最后一个子句就是问题所在。它是x =+ 25。如果我们稍微摆动一下空格,我们会发现它与x = +25. 是的,每次x都设置为正数 25。你搞错了。如果你用 替换它,你的问题应该得到解决。=+x += 25

于 2013-09-06T00:02:48.683 回答