グリッドと言うときは、多次元配列を意味します。2D ゲームを作成していて、データ テキスト ファイルからレベルを読み込めるようにしたいので、これが必要です。たとえば、この 2D 配列があるとしますlevel[3][3
]。シンプルな 3x3 マップ。また、次のようなテキスト ファイルもあります。
1 2 3
4 5 6
7 8 9
C++ では、次のように簡単に実行できます。
for (x=0; i<map_width; x++)
{
for (y=0; y<map_height; y++)
{
fscanf(nameoffile, "%d", map[x][y]);
}
}
これにより、テキスト ファイルのすべての内容がそれに応じて配列に配置されます。ただし、Javaでこれを行う方法がわかりません。それに応じてデータを配列に配置するだけの同等のものはありますか? スキャナークラスについては既に知っていますが、使い方がわかりません。私はグーグルを検索しましたが、役に立ちませんでした。あまり説明しません。助けてください!具体的には、ファイルをスキャンし、読み取った int を配列の適切な場所に配置する方法を知りたいです。
私の現在のコードはこれですが、NoSuchElementException がスローされます。
public void loadMap() {
Scanner sc = null;
try {
sc = new Scanner(inputmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
map[x][y] = sc.nextInt();
}
}
inputmap はファイルでmap[][]
、マップ上の各タイルのデータのグリッドで、幅と高さはコンストラクターで事前に指定されています。