示例#1
0
        public Obstacle(int x, int y, Vector2 size, Vector2 mapSize, Animation animation,
                        SpriteSheet ss, Vector2 scale, bool solid, GraphicsContext g) :
            base((int)(g.Screen.Width / 2 - mapSize.X / 2 + x), (int)(y + 24 * scale.Y), (int)(size.X), (int)(size.Y), animation)
        {
            //this.position.x = this.position.x - 8 * scale;
            //this.position.y = this.position.y + 24 * scale;
            this.solid = solid;

            ss = new SpriteSheet(ss.getImage().Resize(new ImageSize((int)(ss.getWidth() * scale.X),
                                                                    (int)(ss.getHeight() * scale.Y))));

            Sprite[] obstacle = { ss.obtenerSprite((int)(2 * size.X), 0, (int)(size.X), (int)(size.Y), g) };
            a1 = new Animation(obstacle, 1, Animation.Direction.DOWN);

            Sprite[] explosion = { ss.obtenerSprite((int)(size.X * 7),  (int)(size.Y), (int)(size.X), (int)(size.Y), g),
                                   ss.obtenerSprite((int)(size.X * 8),  (int)(size.Y), (int)(size.X), (int)(size.Y), g),
                                   ss.obtenerSprite((int)(size.X * 9),  (int)(size.Y), (int)(size.X), (int)(size.Y), g),
                                   ss.obtenerSprite((int)(size.X * 10), (int)(size.Y), (int)(size.X), (int)(size.Y), g),
                                   ss.obtenerSprite((int)(size.X * 11), (int)(size.Y), (int)(size.X), (int)(size.Y), g),
                                   ss.obtenerSprite((int)(size.X * 12), (int)(size.Y), (int)(size.X), (int)(size.Y), g),
                                   ss.obtenerSprite((int)(size.X * 13), (int)(size.Y), (int)(size.X), (int)(size.Y), g) };

            a2 = new Animation(explosion, 6, Animation.Direction.DOWN);

            Sprite[] blink = { ss.obtenerSprite((int)(2 * size.X),             0, (int)(size.X), (int)(size.Y), g),
                               ss.obtenerSprite((int)(size.X * 7), (int)(size.Y), (int)(size.X), (int)(size.Y), g) };

            a3 = new Animation(blink, 20, Animation.Direction.DOWN);

            this.animation = a1;
        }
示例#2
0
        public void loadTiles(SpriteSheet s)
        {
            try {
                tileset = s;

                int numTilesAcross = (tileset.getWidth() + 1) / tileSize;
                tiles = new Tile[2, numTilesAcross];

                Image subimage;
                for (int col = 0; col < numTilesAcross; col++)
                {
                    subimage = tileset.obtenerSprite(col * tileSize, 0, tileSize,
                                                     tileSize);
                    tiles[0, col] = new Tile(subimage, false);
                    subimage      = tileset.obtenerSprite(col * tileSize, tileSize,
                                                          tileSize, tileSize);
                    tiles[1, col] = new Tile(subimage, true);
                }
            } catch (Exception e) {
                Console.Error.WriteLine(e.Message);
            }
        }
示例#3
0
        private void loadTiles()
        {
            try {
                int numTilesAcross = (tileset.getWidth() + 1) / TILE_SIZE;
                font = new Sprite[2, numTilesAcross];
                shad = new Sprite[2, numTilesAcross];

                Image  subimage, shadowImage;
                Sprite aux;

                for (int col = 0; col < numTilesAcross; col++)
                {
                    subimage = tileset.obtenerSprite(col * TILE_SIZE, 0, TILE_SIZE, TILE_SIZE);
                    aux      = ImageToSprite(subimage.Resize(new ImageSize((int)(subimage.Size.Width * scale.X), (int)(subimage.Size.Height * scale.Y))), g);
                    aux.SetColor(color);
                    font[0, col] = aux;

                    subimage = tileset.obtenerSprite(col * TILE_SIZE, TILE_SIZE, TILE_SIZE, TILE_SIZE);
                    aux      = ImageToSprite(subimage.Resize(new ImageSize((int)(subimage.Size.Width * scale.X), (int)(subimage.Size.Height * scale.Y))), g);
                    aux.SetColor(color);
                    font[1, col] = aux;

                    if (shadows)
                    {
                        shadowImage = tileset.obtenerSprite(col * TILE_SIZE, 0, TILE_SIZE, TILE_SIZE);
                        aux         = ImageToSprite(shadowImage.Resize(new ImageSize((int)(shadowImage.Size.Width * scale.X), (int)(shadowImage.Size.Height * scale.Y))), g);
                        aux.SetColor(new Vector4(0, 0, 0, 255));
                        shad[0, col] = aux;

                        shadowImage = tileset.obtenerSprite(col * TILE_SIZE, TILE_SIZE, TILE_SIZE, TILE_SIZE);
                        aux         = ImageToSprite(shadowImage.Resize(new ImageSize((int)(shadowImage.Size.Width * scale.X), (int)(shadowImage.Size.Height * scale.Y))), g);
                        aux.SetColor(new Vector4(0, 0, 0, 255));
                        shad[1, col] = aux;
                    }
                }
            } catch (Exception e) {
                Console.Error.WriteLine(e.Message);
            }
        }