예제 #1
0
        public float GetActorWidth(Vector2 location, PlayerClone playerToCheck)
        {
            foreach (StaticObject staticObject in staticObjects)
            {
                if (staticObject.Intersects(location))
                {
                    return(staticObject.CollisionRectangle.Width);
                }
            }

            foreach (Player player in players)
            {
                if (player.Intersects(location))
                {
                    return(player.CollisionRectangle.Width + 1);
                }
            }

            foreach (PlayerClone clone in playerClones)
            {
                if (clone != playerToCheck)
                {
                    if (clone.Intersects(location))
                    {
                        return(clone.CollisionRectangle.Width + 1);
                    }
                }
            }

            return(0.0f);
        }
예제 #2
0
        public Vector2 GetActorLocation(Vector2 location, PlayerClone cloneToCheck)
        {
            foreach (StaticObject staticObject in staticObjects)
            {
                if (staticObject.Intersects(location))
                {
                    return(new Vector2(staticObject.CollisionRectangle.X, staticObject.CollisionRectangle.Y));
                }
            }

            foreach (Player player in players)
            {
                {
                    if (player.Intersects(location))
                    {
                        return(player.location);
                    }
                }
            }

            foreach (PlayerClone clone in playerClones)
            {
                if (clone != cloneToCheck)
                {
                    if (clone.Intersects(location))
                    {
                        return(clone.location);
                    }
                }
            }

            return(Vector2.Zero);
        }
예제 #3
0
        public bool HasActorAtLocation(Vector2 location, PlayerClone cloneToCheck)
        {
            foreach (StaticObject staticObject in staticObjects)
            {
                if (staticObject.Intersects(location))
                {
                    return(true);
                }
            }

            foreach (Player player in players)
            {
                if (player.Intersects(location))
                {
                    return(true);
                }
            }

            foreach (PlayerClone clone in playerClones)
            {
                if (clone != cloneToCheck)
                {
                    if (clone.Intersects(location))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
예제 #4
0
 public void RemovePlayerClone(PlayerClone clone)
 {
     for (int i = 0; i < playerClones.Count; i++)
     {
         if (playerClones[i] == clone)
         {
             playerClones.RemoveAt(i);
             return;
         }
     }
 }
예제 #5
0
 public void AddPlayer(Player player)
 {
     if (!playersAndClones.ContainsKey(player))
     {
         PlayerClone clone = new PlayerClone(this.actorManager, this.particleManager, this.tileMap, this.camera, player.location, content, player.frameWidth, player.frameHeight, player.collideWidth, player.collideHeight);
         clone.playerToRecord       = player;
         clone.InteractionRectangle = this.CollisionRectangle;
         playersAndClones.Add(player, clone);
         actorManager.AddPlayerClone(clone);
     }
 }
예제 #6
0
 public void AddPlayerClone(PlayerClone playerClone)
 {
     playerClones.Add(playerClone);
 }