예제 #1
0
 private void UpdateCurrentSprite(SpriteLibrary.PlayerSprite loadedSprite)
 {
     currentSprite = loadedSprite;
     if (loadedSprite != null)
     {
         currentSprite.SetAnimation(currentAnimation);
         currentSprite.SetAnimationPalette(paletteComboBox.SelectedIndex);
         BuildPalette(paletteComboBox.SelectedIndex);
     }
 }
예제 #2
0
        private void BuildPalette(int paletteType)
        {
            if (currentSprite == null)
            {
                return;
            }
            currentSprite.SetAnimationPalette(paletteComboBox.SelectedIndex);

            palettePictureBox.BackColor = Color.Black;
            //palettePictureBox.SizeMode = PictureBoxSizeMode.StretchImage;

            Color[] palette = null;
            switch (paletteType)
            {
            case 0:
                palette = currentSprite.GreenMailPalette.PaletteColors;
                break;

            case 1:
                palette = currentSprite.BlueMailPalette.PaletteColors;
                break;

            case 2:
                palette = currentSprite.RedMailPalette.PaletteColors;
                break;

            case 3:
                palette = currentSprite.BunnyPalette.PaletteColors;
                break;

            default:
                return;
            }

            int width  = paletteSquareSize * 8;
            int height = paletteSquareSize * 2;

            palettePictureBox.Width  = width;
            palettePictureBox.Height = height;
            palettePictureBox.Image  = new Bitmap(width, height);

            Graphics g = Graphics.FromImage(palettePictureBox.Image);

            int x = 0;
            int y = 0;

            for (int i = 0; i < palette.Length; i++)
            {
                x = i * paletteSquareSize % (width);
                y = i * paletteSquareSize / (width) * paletteSquareSize;

                g.FillRectangle(new SolidBrush(palette[i]), x, y, paletteSquareSize, paletteSquareSize);
            }

            glovesPalettePictureBox.BackColor = Color.Black;
            glovesPalettePictureBox.Width     = paletteSquareSize * 2;
            glovesPalettePictureBox.Height    = paletteSquareSize;
            glovesPalettePictureBox.Image     = new Bitmap(paletteSquareSize * 2, paletteSquareSize);

            g = Graphics.FromImage(glovesPalettePictureBox.Image);
            g.FillRectangle(new SolidBrush(currentSprite.GlovePalette[0]), 0, 0, paletteSquareSize, paletteSquareSize);
            g.FillRectangle(new SolidBrush(currentSprite.GlovePalette[1]), paletteSquareSize, 0, paletteSquareSize, paletteSquareSize);
        }