public void MovePlayerTo(GameObj target) { m_controlsLocked = true; if (Player.X != target.X - 150f) { if (Player.X > target.Position.X - 150f) { Player.Flip = SpriteEffects.FlipHorizontally; } var num = CDGMath.DistanceBetweenPts(Player.Position, new Vector2(target.X - 150f, target.Y)) / Player.Speed; Player.UpdateCollisionBoxes(); Player.State = 1; Player.IsWeighted = false; Player.AccelerationY = 0f; Player.AccelerationX = 0f; Player.IsCollidable = false; Player.CurrentSpeed = 0f; Player.LockControls(); Player.ChangeSprite("PlayerWalking_Character"); Player.PlayAnimation(); var logicSet = new LogicSet(Player); logicSet.AddAction(new DelayLogicAction(num)); Player.RunExternalLogicSet(logicSet); Tween.To(Player, num, Tween.EaseNone, "X", (target.Position.X - 150f).ToString()); Tween.AddEndHandlerToLastTween(this, "MovePlayerComplete", target); return; } MovePlayerComplete(target); }
public override void Update(GameTime gameTime) { if (!m_displayText && CDGMath.DistanceBetweenPts(Player.Position, m_king.Position) < 200f) { m_displayText = true; Tween.StopAllContaining(m_tutorialText, false); Tween.To(m_tutorialText, 0.5f, Tween.EaseNone, "Opacity", "1"); } else if (m_displayText && CDGMath.DistanceBetweenPts(Player.Position, m_king.Position) > 200f) { m_displayText = false; Tween.StopAllContaining(m_tutorialText, false); Tween.To(m_tutorialText, 0.5f, Tween.EaseNone, "Opacity", "0"); } if (Player.X > m_king.X - 100f) { Player.X = m_king.X - 100f; } if (!m_kingKilled && m_king.WasHit) { m_kingKilled = true; Game.ScreenManager.DisplayScreen(27, false); } base.Update(gameTime); }
private int PlayerNearWaypoint() { for (var i = 0; i < m_waypointList.Count; i++) { if (CDGMath.DistanceBetweenPts(Player.Position, m_waypointList[i].Position) < 500f) { return(i); } } return(-1); }
public void RefreshChestIcons(RoomObj room) { foreach (var current in room.GameObjList) { var chestObj = current as ChestObj; if (chestObj != null && chestObj.IsOpen) { var pt = new Vector2(chestObj.X / m_spriteScale.X - 8f, chestObj.Y / m_spriteScale.Y - 12f); for (var i = 0; i < m_iconSpritePosList.Count; i++) { if (CDGMath.DistanceBetweenPts(pt, m_iconSpritePosList[i]) < 15f) { m_iconSpriteList[i].ChangeSprite("MapChestUnlocked_Sprite"); m_iconSpriteList[i].Opacity = 1f; break; } } } } }