示例#1
0
        public StorageCore()
        {
            var g = new GreenTile();

            this.Objects = new List <FrameworkObject>();
            this.Objects.Add(g);

            Waypoint[,] net = new Waypoint[3, 3];

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    net[i, j] = new Waypoint(new Vector2(150 + j * 100, 200 + i * 100));
                    this.Objects.Add(net[i, j]);
                }
            }

            var fin = new Waypoint(new Vector2(700, 550));

            this.Objects.Add(fin);

            WaypointRoute r = new WaypointRoute(net[1, 1]);

            r.AddWaypoint(net[1, 1], net[0, 0]);
            r.AddWaypoint(net[1, 1], net[0, 2]);
            r.AddWaypoint(net[1, 1], net[2, 2]);
            r.AddWaypoint(net[1, 1], net[2, 0]);

            r.AddWaypoint(net[0, 0], net[0, 1]);
            r.AddWaypoint(net[0, 2], net[1, 2]);
            r.AddWaypoint(net[2, 2], net[2, 1]);
            r.AddWaypoint(net[2, 0], net[1, 0]);

            r.AddWaypoint(net[0, 1], net[1, 1]);
            r.AddWaypoint(net[1, 2], net[1, 1]);
            r.AddWaypoint(net[2, 1], net[1, 1]);
            r.AddWaypoint(net[1, 0], net[1, 1]);

            r.AddWaypoint(net[2, 2], fin);

            this.Objects.Add(r);
            var i1 = new MoveTowardWaypointInstruction(g, net[1, 1]);
            var m1 = new MoveInstructionSet(i1);

            g.AddInstructionSet(m1);
            g.AddInstructionSet(new MoveInstructionSet(new MoveTowardPointInstruction(g, new Vector2(500, 10))));

            g.AddInstructionSet(new MoveInstructionSet(new MoveAlongWaypointRouteInstruction(g, r)));

            g.AddInstructionSet(new MoveInstructionSet(new MoveTowardPointInstruction(g, new Vector2(500, 10))));
        }
示例#2
0
文件: Grid.cs 项目: LuddeW/Golf
        public void CreateGrid()
        {
            StreamReader  sr         = new StreamReader(@"Level1.txt");
            List <string> stringList = new List <string>();

            while (!sr.EndOfStream)
            {
                stringList.Add(sr.ReadLine());
            }
            grid = new Tile[GlobalValues.HOLE_LENGTH / GlobalValues.TILE_SIZE, GlobalValues.HOLE_HEIGHT / GlobalValues.TILE_SIZE];
            for (int i = 0; i < GlobalValues.HOLE_HEIGHT / GlobalValues.TILE_SIZE; i++)
            {
                var line = stringList[i];
                for (int k = 0; k < GlobalValues.HOLE_LENGTH / GlobalValues.TILE_SIZE && k < line.Length; k++)
                {
                    switch (line[k])
                    {
                    case 'G':
                        grid[k, i] = new GreenTile(TextureLibrary.green, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'F':
                        grid[k, i] = new FairwayTile(TextureLibrary.fairway, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'R':
                        grid[k, i] = new RoughTile(TextureLibrary.rough, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'C':
                        grid[k, i] = new CupTile(TextureLibrary.cup, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'B':
                        grid[k, i] = new BunkerTile(TextureLibrary.bunker, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'S':
                        grid[k, i] = new StoneTile(TextureLibrary.stone, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'W':
                        grid[k, i] = new WaterTile(TextureLibrary.water, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'M':
                        grid[k, i] = new MudTile(TextureLibrary.mud, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'P':
                        grid[k, i] = new FlagStickTile(TextureLibrary.flagpost, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'Q':
                        grid[k, i] = new FlagTile(TextureLibrary.flag, new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE));
                        tiles.Add(grid[k, i]);
                        break;

                    case 'X':
                        ballStartPos = new Vector2(k * GlobalValues.TILE_SIZE, i * GlobalValues.TILE_SIZE);
                        break;
                    }
                }
            }
        }