私は小さなゲームの構築に取り組んでおり、.txt ファイルからレベル マップを読み取り、それを文字の 2D 配列に変換してから、空白以外の文字を 1 つのタイプのオブジェクトに変換する際に問題が発生しています。別。2D 配列への変換は問題ないと思いますが、オブジェクトへの変換時に配列を走査する 2 つの for ループのうちの 1 つで null 参照例外が発生しているようです。コードは次のとおりです。
public void buildLevel()
{
List<Tangible> objects = new List<Tangible>(0);
for (int i = 0; i < map.GetLength(1); i++)
{
for (int j = 0; j < map.GetLength(0); j++)
{
if (map[j, i] == 'O')
{
objects.Add(new Ball((50 * j), (50 * i)));
}
if (map[j, i] == 'X')
{
objects.Add(new Block((50 * j), (50 * i), 50, 50));
}
}
}
allObjects = objects;
}
ここで何が起こっているのでしょうか?ほんとうにありがとう。
編集: ファイルを 2D 配列に読み込むためのコードは次のとおりです。
public void setMap(String mapFile)
{
try
{
List<String> lines = new List<String>();
using (StreamReader sr = new StreamReader("maps\\testLevel.txt"))
{
String currentLine;
while ((currentLine = sr.ReadLine()) != null)
{
lines.Add(currentLine);
}
}
map = new char[lines[0].Length, lines.Count];
for (int i = 0; i < lines.Count; i++)
{
for (int j = 0; j < lines[0].Length; j++)
{
map[j, i] = lines[i][j];
}
}
}
catch (DirectoryNotFoundException e)
{
Console.Error.WriteLine(e);
}
}