reflectHori() public static method

public static reflectHori ( int mat ) : ].int[
mat int
return ].int[
示例#1
0
        public void RenderSetPiece(World world, IntPoint pos)
        {
            int[,] t = new int[27, 27];

            int[,] q = (int[, ])quarter.Clone();

            for (int y = 0; y < 14; y++) //Top left
            {
                for (int x = 0; x < 14; x++)
                {
                    t[x, y] = q[x, y];
                }
            }

            q = SetPieces.reflectHori(q); //Top right
            for (int y = 0; y < 14; y++)
            {
                for (int x = 0; x < 14; x++)
                {
                    t[13 + x, y] = q[x, y];
                }
            }

            q = SetPieces.reflectVert(q); //Bottom right
            for (int y = 0; y < 14; y++)
            {
                for (int x = 0; x < 14; x++)
                {
                    t[13 + x, 13 + y] = q[x, y];
                }
            }

            q = SetPieces.reflectHori(q); //Bottom left
            for (int y = 0; y < 14; y++)
            {
                for (int x = 0; x < 14; x++)
                {
                    t[x, 13 + y] = q[x, y];
                }
            }

            for (int y = 1; y < 4; y++) //Opening
            {
                for (int x = 8; x < 19; x++)
                {
                    t[x, y] = 2;
                }
            }
            t[12, 0] = t[13, 0] = t[14, 0] = 2;


            int r = rand.Next(0, 4); //Rotation

            for (int i = 0; i < r; i++)
            {
                t = SetPieces.rotateCW(t);
            }
            //center
            t[13 + 6, 13] = 4;
            //Tombstones spawn ;)
            t[4, 2]  = t[6, 2] = t[8, 2] = t[10, 2] = 3;
            t[4, 4]  = t[6, 4] = t[8, 4] = t[10, 4] = 3;
            t[4, 10] = t[6, 10] = t[8, 10] = t[10, 10] = 3;
            t[4, 12] = t[6, 12] = t[8, 12] = t[10, 12] = 3;

            t[4, 12] = t[6, 12] = t[8, 12] = t[10, 12] = 3;
            t[4, 14] = t[6, 14] = t[8, 14] = t[10, 14] = 3;
            t[4, 20] = t[6, 20] = t[8, 10] = t[10, 20] = 3;
            t[4, 22] = t[6, 22] = t[8, 12] = t[10, 22] = 3;

            t[14, 2]  = t[16, 2] = t[18, 2] = t[20, 2] = 3;
            t[14, 4]  = t[16, 4] = t[18, 4] = t[20, 4] = 3;
            t[14, 10] = t[16, 10] = t[18, 10] = t[20, 10] = 3;
            t[14, 12] = t[16, 12] = t[18, 12] = t[20, 12] = 3;

            t[14, 2]  = t[16, 2] = t[18, 2] = t[20, 2] = 3;
            t[14, 4]  = t[16, 4] = t[18, 4] = t[20, 4] = 3;
            t[14, 10] = t[16, 10] = t[18, 10] = t[20, 10] = 3;
            t[14, 12] = t[16, 12] = t[18, 12] = t[20, 12] = 3;

            XmlData dat = world.Manager.GameData;

            for (int x = 0; x < 27; x++) //Rendering
            {
                for (int y = 0; y < 27; y++)
                {
                    if (t[x, y] == 1)
                    {
                        WmapTile tile = world.Map[x + pos.X, y + pos.Y].Clone();
                        tile.TileId  = dat.IdToTileType[Floor];
                        tile.ObjType = 0;
                        world.Map[x + pos.X, y + pos.Y] = tile;
                    }
                    else if (t[x, y] == 2)
                    {
                        WmapTile tile = world.Map[x + pos.X, y + pos.Y].Clone();
                        tile.TileId  = dat.IdToTileType[Floor];
                        tile.ObjType = 0;
                        world.Map[x + pos.X, y + pos.Y] = tile;
                    }

                    else if (t[x, y] == 3)
                    {
                        Entity tombstones = Entity.Resolve(world.Manager, "Tombstone");
                        tombstones.Move(pos.X + x, pos.Y + y);
                        world.EnterWorld(tombstones);
                    }

                    else if (t[x, y] == 4)
                    {
                        Entity tombstones = Entity.Resolve(world.Manager, "Kage Kami");
                        tombstones.Move(pos.X + x, pos.Y + y);
                        world.EnterWorld(tombstones);
                    }
                }
            }
        }
示例#2
0
        public void RenderSetPiece(World world, IntPoint pos)
        {
            int[,] t = new int[27, 27];

            int[,] q = (int[, ])quarter.Clone();

            for (int y = 0; y < 14; y++) //Top left
            {
                for (int x = 0; x < 14; x++)
                {
                    t[x, y] = q[x, y];
                }
            }

            q = SetPieces.reflectHori(q); //Top right
            for (int y = 0; y < 14; y++)
            {
                for (int x = 0; x < 14; x++)
                {
                    t[13 + x, y] = q[x, y];
                }
            }

            q = SetPieces.reflectVert(q); //Bottom right
            for (int y = 0; y < 14; y++)
            {
                for (int x = 0; x < 14; x++)
                {
                    t[13 + x, 13 + y] = q[x, y];
                }
            }

            q = SetPieces.reflectHori(q); //Bottom left
            for (int y = 0; y < 14; y++)
            {
                for (int x = 0; x < 14; x++)
                {
                    t[x, 13 + y] = q[x, y];
                }
            }

            for (int y = 1; y < 4; y++) //Opening
            {
                for (int x = 8; x < 19; x++)
                {
                    t[x, y] = 2;
                }
            }
            t[12, 0] = t[13, 0] = t[14, 0] = 2;

            int r = rand.Next(0, 4); //Rotation

            for (int i = 0; i < r; i++)
            {
                t = SetPieces.rotateCW(t);
            }

            t[13 + 6, 13] = 3;

            XmlData dat = world.Manager.Resources.GameData;

            for (int x = 0; x < 27; x++) //Rendering
            {
                for (int y = 0; y < 27; y++)
                {
                    if (t[x, y] == 1)
                    {
                        var tile = world.Map[x + pos.X, y + pos.Y].Clone();
                        tile.TileId  = dat.IdToTileType[Floor];
                        tile.ObjType = dat.IdToObjectType[Wall];
                        if (tile.ObjId == 0)
                        {
                            tile.ObjId = world.GetNextEntityId();
                        }
                        world.Map[x + pos.X, y + pos.Y] = tile;
                    }
                    else if (t[x, y] == 2)
                    {
                        var tile = world.Map[x + pos.X, y + pos.Y].Clone();
                        tile.TileId  = dat.IdToTileType[Floor];
                        tile.ObjType = 0;
                        world.Map[x + pos.X, y + pos.Y] = tile;
                    }
                    else if (t[x, y] == 3)
                    {
                        Entity cyclops = Entity.Resolve(world.Manager, 0x0928);
                        cyclops.Move(pos.X + x, pos.Y + y);
                        world.EnterWorld(cyclops);
                    }
                }
            }
        }
示例#3
0
        public void RenderSetPiece(World world, IntPoint pos)
        {
            var t = new int[27, 27];

            var q = (int[, ])quarter.Clone();

            for (var y = 0; y < 14; y++) //Top left
            {
                for (var x = 0; x < 14; x++)
                {
                    t[x, y] = q[x, y];
                }
            }

            q = SetPieces.reflectHori(q); //Top right
            for (var y = 0; y < 14; y++)
            {
                for (var x = 0; x < 14; x++)
                {
                    t[13 + x, y] = q[x, y];
                }
            }

            q = SetPieces.reflectVert(q); //Bottom right
            for (var y = 0; y < 14; y++)
            {
                for (var x = 0; x < 14; x++)
                {
                    t[13 + x, 13 + y] = q[x, y];
                }
            }

            q = SetPieces.reflectHori(q); //Bottom left
            for (var y = 0; y < 14; y++)
            {
                for (var x = 0; x < 14; x++)
                {
                    t[x, 13 + y] = q[x, y];
                }
            }

            for (var y = 1; y < 4; y++) //Opening
            {
                for (var x = 8; x < 19; x++)
                {
                    t[x, y] = 2;
                }
            }
            t[12, 0] = t[13, 0] = t[14, 0] = 2;


            var r = rand.Next(0, 4); //Rotation

            for (var i = 0; i < r; i++)
            {
                t = SetPieces.rotateCW(t);
            }

            t[13 + 6, 13] = 3;


            for (var x = 0; x < 27; x++) //Rendering
            {
                for (var y = 0; y < 27; y++)
                {
                    if (t[x, y] == 1)
                    {
                        var tile = world.Map[x + pos.X, y + pos.Y].Clone();
                        tile.TileId  = Floor;
                        tile.ObjType = Wall;
                        if (tile.ObjId == 0)
                        {
                            tile.ObjId = world.GetNextEntityId();
                        }
                        world.Obstacles[x + pos.X, y + pos.Y] = 2;
                        world.Map[x + pos.X, y + pos.Y]       = tile;
                    }
                    else if (t[x, y] == 2)
                    {
                        var tile = world.Map[x + pos.X, y + pos.Y].Clone();
                        tile.TileId  = Floor;
                        tile.ObjType = 0;
                        world.Obstacles[x + pos.X, y + pos.Y] = 0;
                        world.Map[x + pos.X, y + pos.Y]       = tile;
                    }

                    else if (t[x, y] == 3)
                    {
                        var cyclops = Entity.Resolve(0x0928);
                        cyclops.Move(pos.X + x, pos.Y + y);
                        world.EnterWorld(cyclops);
                    }
                }
            }
        }