/// <summary> /// Creates an new PowerUpp /// </summary> /// <param name="position"></param> /// <returns></returns> public int CreateTestPowerUp(Vector2 position) { Random rand = new Random(); PositionComponent Pc = new PositionComponent(position); PowerUppComponent power = new PowerUppComponent(rand.Next(1, 3)); DrawableComponent powerupp = new DrawableComponent(Game.Instance.GetContent <Texture2D>("Pic/Powerupbox"), SpriteEffects.None); CollisionRectangleComponent CRC = new CollisionRectangleComponent(new Rectangle((int)position.X, (int)position.Y, powerupp.texture.Width, powerupp.texture.Height)); CollisionComponent CC = new CollisionComponent(true); int id = ComponentManager.Instance.CreateID(); ComponentManager.Instance.AddComponentToEntity(id, CRC); ComponentManager.Instance.AddComponentToEntity(id, CC); ComponentManager.Instance.AddComponentToEntity(id, Pc); ComponentManager.Instance.AddComponentToEntity(id, power); ComponentManager.Instance.AddComponentToEntity(id, powerupp); return(id); }
/// <summary> /// A method for handling Player versus PowerUp collision /// </summary> /// <param name="ent1"> ID of entity 1 </param> /// <param name="ent2"> ID of entity 2 </param> private void PlayerVSPowerup(int ent1, int ent2) { int player; int power; List <IComponent> list1 = ComponentManager.Instance.GetAllEntityComponents(ent1); List <IComponent> list2 = ComponentManager.Instance.GetAllEntityComponents(ent2); if (list1.OfType <PlayerComponent>().Any()) { player = ent1; power = ent2; } else { player = ent2; power = ent1; } PlayerComponent playerComp = ComponentManager.Instance.GetEntityComponent <PlayerComponent>(player); if (!playerComp.isFalling) { PowerUppComponent tes = ComponentManager.Instance.GetEntityComponent <PowerUppComponent>(power); ComponentManager.Instance.AddComponentToEntity(player, new SoundEffectComponent("powerup")); switch (tes.type) { case 1: BallOfSpikesSystem temp = new BallOfSpikesSystem(); temp.OnPowerUpPicup(player); break; case 2: HealthComponent hp = ComponentManager.Instance.GetEntityComponent <HealthComponent>(player); hp.health = hp.maxhealth; break; default: break; } rec(ent1, ent2); } }