0

私の目には、このコードは問題ないように見えますが、ペイント ループ全体がフリーズするため、実際に良いかどうかはわかりません。以前は、オフセットの煩わしさがなくても問題なく機能していました。

    int offsetX = 0;
    int offsetY = 0;

    for(int y = 0, canvasY = offsetY + y, x = 0, canvasX = offsetX + x; canvasY < mapHeight + offsetY && canvasX < mapWidth + offsetX; y++, x++) {
            int tileToPaint = canvasX + (canvasY * mapWidth);
            tileObject = getObject(tileToPaint);
            int locationX = tileSize * x;
            int locationY = tileSize * y;
            draw(tileObject, locationX, locationY);
    }
4

1 に答える 1

3

問題はそれが無限だということです。

あなたの状態:

canvasY < mapHeight + offsetY && canvasX < mapWidth + offsetX

これらの値は変更されないため、常に false になります。


あなたがやりたいと思うことは、呼び出しの後にこれらを呼び出すことdrawです。

canvasY = offsetY + y;
canvasX = offsetX + x;
于 2013-08-09T00:25:24.833 に答える