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; }
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)); }
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); }
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); } }
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); } }
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); }