0

レベルクラス(レベル作成用クラス)でエラーが発生したとき、ゲームエンジンを作成しようとしていました

Level.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _2dgame
{
    class Level
    {

        public const int LEVEL_WIDTH = 12;
        public const int LEVEL_HEIGHT = 8;


        private static TextureID[,] blocks = new TextureID[LEVEL_WIDTH, LEVEL_HEIGHT];

        public static TextureID[,] Blocks
        {
            get { return blocks; }
            set { blocks = value; }
        }

        public static void initLevel()
        {
            for (int x = 0; x < LEVEL_WIDTH; x++)
            {
                for(int y = 0; x < LEVEL_HEIGHT; y++)
                {
                    if (y >= 12)
                    {
                        blocks[x, y] = TextureID.dirt; //ERROR
                    }
                    else
                    {
                        blocks[x, y] = TextureID.air;
                    }
                }
            }
        }
    }
}

エラー:

タイプ 'System.IndexOutOfRangeException' の未処理の例外が 2dgame.exe で発生しました

4

2 に答える 2

2

Y チェックの for ループが間違っています。

for(int y = 0; x < LEVEL_HEIGHT; y++)

次のようにする必要があります。

for(int y = 0; y < LEVEL_HEIGHT; y++)
于 2015-12-04T15:23:44.797 に答える
1

内側の ( y) ループにタイプミスがあります。

for(int y = 0; x < LEVEL_HEIGHT; y++)

次のようにする必要があります。

for(int y = 0; y < LEVEL_HEIGHT; y++)
于 2015-12-04T15:23:48.360 に答える