Exemplo n.º 1
0
        private void RenderEnemies(Blitter b, IList <EnemyInstance> enemies)
        {
            b.ChangeSource(Level.SpritePatterns.PatternImage);

            if (enemies != null)
            {
                for (int i = 0; i < enemies.Count; i++)
                {
                    EnemyInstance    s           = enemies[i];
                    SpriteDefinition enemySprite = Level.GetSprite(s.EnemyType);
                    byte             pal         = (byte)(8 + Level.GetSpritePalette(s.EnemyType, s.DifficultByteValue == 8));

                    enemySprite.Draw(b, s.X * 2, s.Y * 2, pal);
                    if (s.Respawn)
                    {
                        EnemyInstance.RespawnSprite.Draw(b, s.X * 2, s.Y * 2, 0);
                    }
                    if (selectedEnemy == i)
                    {
                        Rectangle spriteBounds = enemySprite.Measure();
                        spriteBounds.X += s.X * 16;
                        spriteBounds.Y += s.Y * 16;
                        b.DrawRect(spriteBounds, NesPalette.HighlightEntry);
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates an array of enemies from an array of sprite data arrays.
        /// </summary>
        /// <param name="data">Array of sprite data arrays.</param>
        /// <param name="sizes">SpriteDefinition sizes</param>
        /// <returns>An array of enemies.</returns>
        public static SpriteDefinition[] FromArray(byte[][] data, Size[] sizes)
        {
            SpriteDefinition[] sprites = new SpriteDefinition[data.Length];
            bool noSizesSpecified      = sizes == null;

            for (int i = 0; i < data.Length; i++)
            {
                if (data[i] == null)
                {
                    sprites[i] = LevelSprites.invalidEnemy;
                }
                else
                {
                    if (noSizesSpecified || sizes.Length <= i)
                    {
                        sprites[i] = new SpriteDefinition(data[i], 2, 2);
                    }
                    else
                    {
                        sprites[i] = new SpriteDefinition(data[i], sizes[i].Width, sizes[i].Height);
                    }
                }
            }

            return(sprites);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Adds a sprite to a batch to be rendered to the output image.
 /// </summary>
 /// <param name="sprite">The graphic sprite.</param>
 /// <param name="X">The location of the sprite (in 8x8 tiles).</param>
 /// <param name="Y">The location of the sprite (int 8x8 tiles).</param>
 /// <param name="paletteIndex">The count of the paletteIndex to render with.</param>
 public void AddSprite(SpriteDefinition sprite, int X, int Y, byte paletteIndex)
 {
     _sprites.Add(new SpriteListItem(sprite, paletteIndex, new Point(X, Y)));
 }