Beispiel #1
0
        public bool DoCheckAccess(Direction checkDir)
        {
            Vector2 <int> dir      = GetDirection(checkDir);
            MazeGrid      nextGrid = mMap.GetGrid(mCurGrid.XY.x + dir.x, mCurGrid.XY.y + dir.y);

            return(nextGrid.CheckPass() == MazeGrid.PassResult.Pass);
        }
Beispiel #2
0
        /*public override void OnSingletonInit()
         * {
         *  mMap = GetComponentInChildren<MazeMap>();
         *  mAvatar = GetComponentInChildren<MazeAvatar>();
         *
         *  Reset();
         * }*/

        public void Reset()
        {
            //todo: configurable

            string savePath = System.IO.Path.Combine(Application.persistentDataPath, "MazeMapDesign");

            savePath = System.IO.Path.Combine(savePath, "Level1.json");
            string      jsonText = File.ReadAllText(savePath);
            MazeMapData data     = jsonText.FromJson <MazeMapData>();

            mMap.Init(data);

            mCurGrid = mMap.GetStartGrid();
            List <Vector2 <int> > dirs = DIRECTIONS.GetRange(0, DIRECTIONS.Count);

            while (dirs.Count > 0)
            {
                //get a random accessible direction
                Vector2 <int> dir  = dirs[Random.Range(0, dirs.Count)];
                MazeGrid      grid = mMap.GetGrid(mCurGrid.XY.x + dir.x, mCurGrid.XY.y + dir.y);
                if (grid.CheckPass() == MazeGrid.PassResult.Pass)
                {
                    mCurDir = dir;
                    break;
                }
                dirs.Remove(dir);
            }

            mAvatar.Init(mCurGrid.Position, new Vector3(mCurDir.x, 0, mCurDir.y));
        }