Ejemplo n.º 1
0
        /// <summary>Processes the specified entity.</summary>
        /// <param name="entity">The entity.</param>
        public override void Process(Entity entity, SpatialFormComponent spatialFormComponent, TransformComponent transformComponent)
        {
            if (spatialFormComponent != null)
            {
                this.spatialName = spatialFormComponent.SpatialFormFile;

                if (transformComponent.X >= 0 &&
                    transformComponent.Y >= 0 &&
                    transformComponent.X < this.spriteBatch.GraphicsDevice.Viewport.Width &&
                    transformComponent.Y < this.spriteBatch.GraphicsDevice.Viewport.Height)
                {
                    ///very naive render ...
                    if (string.Compare("PlayerShip", this.spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        PlayerShip.Render(this.spriteBatch, this.contentManager, transformComponent);
                    }
                    else if (string.Compare("Missile", this.spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        Missile.Render(this.spriteBatch, this.contentManager, transformComponent);
                    }
                    else if (string.Compare("EnemyShip", this.spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        EnemyShip.Render(this.spriteBatch, this.contentManager, transformComponent);
                    }
                    else if (string.Compare("BulletExplosion", this.spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        Explosion.Render(this.spriteBatch, this.contentManager, transformComponent, Color.Red, 10);
                    }
                    else if (string.Compare("ShipExplosion", this.spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        ShipExplosion.Render(this.spriteBatch, this.contentManager, transformComponent, Color.Yellow, 30);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private static void CreateExplosion(Ship ship, AnimationService animationService, GameService gameService)
        {
            var exp = new ShipExplosion()
            {
                DrawPath             = false,
                RotateAlongPath      = false,
                Started              = true,
                DestroyAfterComplete = false,
                IsMoving             = false,
                PathIsLine           = true,
                Location             = new PointF(ship.Location.X, ship.Location.Y)
            };

            if (ship.LeftShipHit)
            {
                exp.Location = new PointF(ship.Location.X, ship.Location.Y);
            }
            else if (ship.RightShipHit)
            {
                exp.Location = new PointF(ship.Location.X + Constants.SpriteDestSize.Width, ship.Location.Y);
            }

            if (ship.Sprite.SpriteType == Sprite.SpriteTypes.DoubleShip)
            {
                ship.IsDoubleShip = true;
                ship.Sprite       = new Sprite(Sprite.SpriteTypes.Ship);
            }

            exp.SpriteBankIndex = -1;

            exp.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.ShipExplosion1));
            exp.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.ShipExplosion1));
            exp.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.ShipExplosion2));
            exp.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.ShipExplosion2));
            exp.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.ShipExplosion3));
            exp.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.ShipExplosion3));
            exp.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.ShipExplosion4));
            exp.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.ShipExplosion4));

            animationService.Animatables.Add(exp);
        }
Ejemplo n.º 3
0
        public override void Draw(GameTime gameTime)
        {
            foreach (var entityId in ActiveEntities)
            {
                var entity    = GetEntity(entityId);
                var spatial   = entity.Get <SpatialFormComponent>();
                var transform = entity.Get <Transform2>();

                var spatialName = spatial.SpatialFormFile;

                var worldPosition = transform.WorldPosition;
                if (!(worldPosition.X >= 0) || !(worldPosition.Y >= 0) ||
                    !(worldPosition.X < _spriteBatch.GraphicsDevice.Viewport.Width) ||
                    !(worldPosition.Y < _spriteBatch.GraphicsDevice.Viewport.Height))
                {
                    return;
                }

                // very naive render ...
                if (string.Compare("PlayerShip", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                {
                    PlayerShip.Render(_spriteBatch, _contentManager, transform);
                }
                else if (string.Compare("Missile", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                {
                    Missile.Render(_spriteBatch, _contentManager, transform);
                }
                else if (string.Compare("EnemyShip", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                {
                    EnemyShip.Render(_spriteBatch, _contentManager, transform);
                }
                else if (string.Compare("BulletExplosion", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                {
                    Explosion.Render(_spriteBatch, _contentManager, transform, Color.Red, 10);
                }
                else if (string.Compare("ShipExplosion", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
                {
                    ShipExplosion.Render(_spriteBatch, _contentManager, transform, Color.Yellow, 30);
                }
            }
        }
Ejemplo n.º 4
0
 private void CreateSpatial(Entity e)
 {
     if (String.Compare("PlayerShip", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
     {
         PlayerShip.Render(spriteBatch, contentManager, transform);
     }
     else if (String.Compare("Missile", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
     {
         Missile.Render(spriteBatch, contentManager, transform);
     }
     else if (String.Compare("EnemyShip", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
     {
         EnemyShip.Render(spriteBatch, contentManager, transform);
     }
     else if (String.Compare("BulletExplosion", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
     {
         Explosion.Render(spriteBatch, contentManager, transform, Color.Red, 10);
     }
     else if (String.Compare("ShipExplosion", spatialName, StringComparison.InvariantCultureIgnoreCase) == 0)
     {
         ShipExplosion.Render(spriteBatch, contentManager, transform, Color.Yellow, 30);
     }
 }