Beispiel #1
0
        private bool ReadHeader(BytesReader buffer)
        {
            uint flag = buffer.ReadUInt32();

            if (flag != HeaderFlag)
            {
                return(false);
            }

            mapType    = (ELevelMapType)buffer.ReadInt32();
            minCol     = buffer.ReadInt32();
            maxBallId  = buffer.ReadInt32();
            ballRadius = buffer.ReadFloat();

            return(true);
        }
Beispiel #2
0
        public void LoadLevelMap()
        {
            byte[]       databytes = File.ReadAllBytes(GetLevelDataPath(LevelId));
            LevelMapData data      = new LevelMapData();

            data.LoadFromBytes(databytes);
            MapType = (ELevelMapType)data.mapType;

            nextBallId = data.maxBallId + 1;

            foreach (var ballData in data.balls)
            {
                ELevelBallType type   = (ELevelBallType)ballData.type;
                int            col    = ballData.grids[0].col;
                int            row    = ballData.grids[0].row;
                int            ballId = ballData.id;

                GameObject prefab = BallPrefabs[type];
                GameObject ball   = PrefabUtility.InstantiatePrefab(prefab) as GameObject;
                ball.name = string.Format("[{0},{1}][{2}]", col, row, type.ToString());
                ball.transform.SetParent(this.transform);
                ball.transform.localPosition = GridToPosition(col, row);
                ball.hideFlags = HideFlags.HideInHierarchy;
                LevelBall newball = ball.GetComponent <LevelBall>();
                newball.Id = ballId;

                List <LevelBall> connectedBalls = new List <LevelBall>();
                GetConnectedBalls(col, row, connectedBalls);
                foreach (var b in connectedBalls)
                {
                    newball.Connections.Add(b);
                    b.Connections.Add(newball);
                }

                Balls.Add(new GridPosition(col, row), newball);
            }
        }
Beispiel #3
0
 public LevelMapData()
 {
     mapType = ELevelMapType.Normal;
     balls   = new List <BallData>();
 }