public bool CanInteract(PlayerElement player) { Rectangle playerBounds = new Rectangle((int)player.Location.X, (int)player.Location.Y, PlayerElement.PLAYER_WIDTH, PlayerElement.PLAYER_HEIGHT); double radius = Math.Max(texture.Width / 2.0d, texture.Height / 2.0d); Point center = new Point((int)this.Location.X + this.texture.Width/2, (int)this.Location.Y + this.texture.Height / 2); Point playerCenter = new Point(playerBounds.X + playerBounds.Width / 2, playerBounds.Y + playerBounds.Height / 2); List<Point> points = new List<Point>() { new Point(playerBounds.Left, playerBounds.Top), new Point(playerBounds.Right, playerBounds.Top), new Point(playerBounds.Right, playerBounds.Bottom), new Point(playerBounds.Left, playerBounds.Bottom), new Point(playerBounds.Left + playerBounds.Width / 2, playerBounds.Top), new Point(playerBounds.Right, playerBounds.Top + playerBounds.Height /2), new Point(playerBounds.Right, playerBounds.Bottom + playerBounds.Height /2), new Point(playerBounds.Left + playerBounds.Width / 2, playerBounds.Bottom), playerCenter }; foreach(Point p in points) { if(Dist(p, center) <= radius * radius) { return true; } } return false; }
public void Interact(PlayerElement player) { player.CollectCoin(this); if (Game1.Instance.Mode == GameMode.Single || Game1.Instance.Mode == GameMode.AStar && !player.IsPlayerAGoat) { this.visible = false; } }
public PlayerController(PlayerElement player) { this.Player = player; this.ActionsHistory = new List<PlayerAction>(); this.PredefinedActions = new List<PlayerAction>(); this.StatusHistory = new List<PlayerStatus>(); this.ActionDuration = 300; }
protected override void InitializeElements() { base.InitializeElements(); player = new PlayerElement(); //player.Location = new Vector2(3900, 10); //this.Offset = new Vector2(-3800, 0); this.Elements.Add(player); }
public bool CanInteract(PlayerElement player) { if (!this.visible) { return false; } Rectangle playerBounds = new Rectangle((int)player.Location.X, (int)player.Location.Y, PlayerElement.PLAYER_WIDTH, PlayerElement.PLAYER_HEIGHT); Rectangle bounds = new Rectangle((int)this.Location.X + WIDTH / 4, (int)this.Location.Y + WIDTH / 4, WIDTH / 2, HEIGHT - WIDTH / 2); return bounds.Intersects(playerBounds); }
protected void HandleInteraction(PlayerElement player) { foreach (IInteractiveObject obj in GameLevelManager.CurrentLevel.InteractionObjects) { if (obj.CanInteract(player)) { obj.Interact(player); } } }
public PlayerNode(PlayerNode parent, GameTime time, int moves, PlayerAction action, PlayerElement playerElement, int jumps) { this.Parent = parent; this.Time = time; this.Moves = moves; this.Action = action; this.PlayerElement = playerElement; this.Jumps = jumps; }
public void Interact(PlayerElement player) { player.Die(); }
public bool CanInteract(PlayerElement player) { Rectangle playerBounds = new Rectangle((int)player.Location.X, (int)player.Location.Y, PlayerElement.PLAYER_WIDTH, PlayerElement.PLAYER_HEIGHT); Rectangle batmanBounds = new Rectangle((int)this.Location.X + offset, (int)this.Location.Y, SPRITE_WIDTH, SPRITE_HEIGHT); return batmanBounds.Intersects(playerBounds); }
public bool CanInteract(PlayerElement player) { Rectangle playerBounds = new Rectangle((int)player.Location.X, (int)player.Location.Y, PlayerElement.PLAYER_WIDTH, PlayerElement.PLAYER_HEIGHT); Rectangle bounds = new Rectangle((int)this.Location.X, (int)this.Location.Y, COIN_WIDTH , COIN_HEIGHT); return bounds.Intersects(playerBounds); }
public PlayerElement Clone() { PlayerElement newPlayer = new PlayerElement(); newPlayer.Texture = this.Texture; newPlayer.isMoving = this.isMoving; newPlayer.isForward = this.isForward; newPlayer.isDead = this.isDead; newPlayer.hasWon = this.hasWon; newPlayer.frame = this.frame; newPlayer.totalTime = this.totalTime; newPlayer.isJumping = this.isJumping; newPlayer.jumpSpeed = this.jumpSpeed; newPlayer.Location = this.Location; newPlayer.coins = new HashSet<CoinElement>(this.coins); return newPlayer; }