程序在创建新的数组实例时冻结

时间:2013-09-05 23:56:01

标签: java arrays

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

2 个答案:

答案 0 :(得分:4)

= +不是java运算符。您每次在x循环中将x设置为值25。所以你永远不会遇到x&gt; 1280因为每次循环(第一次除外)x都是25.你应该使用+ =运算符,如果你希望每次循环x增加25。

答案 1 :(得分:1)

for的最后一个条款是问题。它是x =+ 25。如果我们稍微摆动空格,我们就会发现它与x = +25相同。是的,每次x设置为正25.你得到了=+错误的方法。如果将其替换为x += 25,则应解决您的问题。