私は自分のプロジェクトの基本的なタイル エンジンに取り組んでおり、かなり機能する状態にすることができました。ただし、主な問題の 1 つは、コードを実行すると、タイルが常に (0, 0) ではなく (16, 0) で描画を開始することです。
int row = 0, column = 0;
for (int x = 1; x < array.Length; x++) {
if (x % 32 == 0 && x != 0)
row++;
if (column >= 31)
column = 0;
else
column++;
Tile newTile = new Tile();
newTile.tileSheet = tileSheet;
newTile.tilePos = new Vector2(column * 16, row * 16);
if (array[x] == Color.Black) {
newTile.tileType = 0;
newTile.tileSource = new Rectangle(0, 0, 16, 16);
}
else {
newTile.tileType = 1;
newTile.tileSource = new Rectangle(16, 0, 16, 16);
}
tileList.Add(newTile);
}
そして問題の写真:
for() ループで x = 1 から開始することはわかっていますが、これを if ((x - 1) ...) で打ち消しても機能しません。私は本当に困惑しています。