Exemplo n.º 1
0
        public BaseSprite(float x, float y, int width, int height, string textureName, TypeSprite type, MyGame game)
        {
            this._textureName = textureName;

            this._box = new Rectangle((int)x, (int)y, width, height);

            this._typeSprite = type;
            this._game = game;
        }
Exemplo n.º 2
0
 public static Bitmap SpriteToBitmap(byte[] tiles, byte[] pal, TypeSprite oams, TileMode tileMode, ColorDepth colorDepth)
 {
     if (!_isConvertersInitialized)
     {
         InitilizeConverters();
     }
     byte[] alphaValues = null;
     // byte[] indexes = _indexedFormatConverters[colorDepth].DecompressIndexes(tiles, ref alphaValues);
     return(ImageTypeConverter.SpriteFrameToBmp(tiles, pal, oams, tileMode, colorDepth));
 }
Exemplo n.º 3
0
        public void LoadNGCRImageWithNcer(Ebk ebk)
        {
            ColorDepth depth      = Char.IntensidadeDeBits == 3 ? ColorDepth.F4BBP : ColorDepth.F8BBP;
            TypeSprite typeSprite = new TypeSprite()
            {
                Oams = ebk.Oams, TileBoundary = (int)ArquivoNcer.Cebk.TileBoundary
            };
            TileMode tileMode = Char.FlagDeDimensao == 0 ? TileMode.Tiled : TileMode.NotTiled;

            ConvertedImage = ImageConverter.SpriteToBitmap(Char.Tiles, ArquivoNclr.Pltt.Paleta, typeSprite, tileMode, depth);
        }
Exemplo n.º 4
0
    public Sprite getFrozenSprite(TypeSprite type, int num)
    {
        switch (type)
        {
        case TypeSprite.NORMAL: return(SkinCollection.Instance.ActualSkin.Monsters[num - 1].FrozenNormal);

        case TypeSprite.DEFEAT: return(SkinCollection.Instance.ActualSkin.Monsters[num - 1].FrozenDeafeat);

        case TypeSprite.OPEN: return(SkinCollection.Instance.ActualSkin.Monsters[num - 1].FrozenOpen);

        default: return(null);
        }
    }
Exemplo n.º 5
0
    public Sprite getSprite(TypeSprite type, int num)
    {
        num = Mathf.Clamp(num, 1, 4);
        switch (type)
        {
        case TypeSprite.NORMAL: return(SkinCollection.Instance.ActualSkin.Monsters[num - 1].Normal);

        case TypeSprite.DEFEAT: return(SkinCollection.Instance.ActualSkin.Monsters[num - 1].Deafeat);

        case TypeSprite.OPEN:  return(SkinCollection.Instance.ActualSkin.Monsters[num - 1].Open);

        default: return(null);
        }
    }
Exemplo n.º 6
0
        public static Bitmap SpriteFrameToBmp(byte[] tiles, byte[] palette, TypeSprite typeSprite, TileMode tileMode, ColorDepth depth)
        {
            Bitmap final = new Bitmap(512, 256);

            byte[] alphaValues = null;
            using (Graphics g = Graphics.FromImage(final))
            {
                foreach (var oam in typeSprite.Oams)
                {
                    Bitmap framePart;
                    int    framePartIndexesSz = (int)oam.Width * (int)oam.Height;
                    if (depth == ColorDepth.F4BBP)
                    {
                        framePartIndexesSz /= 2;
                    }

                    byte[] framePartIndexes = new byte[framePartIndexesSz];
                    Array.Copy(tiles, oam.TileId * (typeSprite.TileBoundary * 64), framePartIndexes, 0, framePartIndexesSz);

                    framePartIndexes = ImageConverter._indexedFormatConverters[depth].DecompressIndexes(framePartIndexes, ref alphaValues);
                    int    paletteByteSz = depth == ColorDepth.F4BBP ? 0x20 : 0x200;
                    BGR565 pal           = new BGR565(palette, paletteByteSz, (int)oam.PaletteId * paletteByteSz);

                    framePart = tileMode == TileMode.Tiled
                        ? TiledToBmp(framePartIndexes, (int)oam.Width, (int)oam.Height, pal)
                        : NotTiledToBmp(framePartIndexes, (int)oam.Width, (int)oam.Height, pal);

                    if (oam.HorizontalFlip && oam.VerticalFlip)
                    {
                        framePart.RotateFlip(RotateFlipType.RotateNoneFlipXY);
                    }
                    else if (oam.HorizontalFlip)
                    {
                        framePart.RotateFlip(RotateFlipType.RotateNoneFlipX);
                    }
                    else if (oam.VerticalFlip)
                    {
                        framePart.RotateFlip(RotateFlipType.RotateNoneFlipY);
                    }

                    g.DrawImage(framePart, oam.X, oam.Y);
                    framePart.Dispose();
                }
            }

            return(final);
        }