コード例 #1
0
        public void AddGameObjects(GameState gameState)
        {
            var lines = this._layout.Split(new [] { "\r\n" }, StringSplitOptions.None);

            for (int y = 0; y < lines.Count(); y++)
            {
                for (int x = 0; x < lines[y].Length; x++)
                {
                    var tp       = new TilePos(x, y);
                    var position = tp.ToPosition();
                    var c        = lines[y][x];
                    switch (c)
                    {
                    case ' ':
                        break;

                    case '#':
                        Trace.WriteLine(System.IO.Directory.GetCurrentDirectory());
                        gameState.AddWall(position, "Tiles/Floor1");
                        break;

                    case 'p':
                        gameState.AddPlayer(position, 255, 0);
                        break;

                    case 'b':
                        gameState.AddBoulder(position);
                        break;

                    case 'g':
                        gameState.AddGrave(tp);
                        break;

                    case 'm':
                        var mdef = new MonsterDef();
                        mdef.Breed    = "DummyMonster";
                        mdef.Position = position;
                        mdef.Energy   = 100;
                        gameState.AddMonster(mdef);
                        break;

                    default:
                        throw new InvalidOperationException();
                    }
                }
            }
        }