私は私が私のクラスのいずれかにDrawメソッドを実行するたびにIndexOutOfRangeExceptionを取得しておくのC#の問題を抱えているとSystem.IndexOutOfRangeException。C#Monogame - 2次元配列
私は今、時間のカップルのための問題を把握しようとしてきたが、私は、正確な問題を見つけることができていないと私はStackOverflowの上の任意の解決策を見つけることができませんでした。
私はC#(私は3または4日間学習してきた)、そのソリューションのおそらくかなり明白になるだろうに新たなんです。
Level.cs:
using Microsoft.Xna.Framework.Graphics;
namespace Game1 {
class Level {
public Tile[,] Tiles;
public void Draw(SpriteBatch sb) {
for (int x = 0; x < Tiles.GetLength(0); x++)
for (int y = 0; x < Tiles.GetLength(1); y++)
if (Tiles[x, y] != null)
Tiles[x, y].Draw(sb, x, y);
}
public Level(int size) {
Tiles = new Tile[size, size];
for (int x = 0; x < size; x++)
for (int y = 0; y < size; y++)
Tiles[x, y] = Tile.Tiles[0];
}
}
}
Tile.cs:あなたの代わりに、ループの中で... Y <かどうかをチェックしてみ
public void Draw(SpriteBatch sb) {
for (int x = 0; x < Tiles.GetLength(0)-1; x++)
for (int y = 0; x < Tiles.GetLength(1)-1; y++)
if (Tiles[x, y] != null)
Tiles[x, y].Draw(sb, x, y);
}
これは正解ですが、あなたは非常に悪いことを発表しました。それが立っているので、コメントに適しています。何が間違っているのか、そして何を修正する必要があるのかを明確に示すために、これを少し体質化することを提案できますか? – Enigmativity