public AiStateState Update(ShootyShootyBangBangEngine.Controllers.BaseControllers controllers, GameObject owner, double dt) { var transformComp = owner.GetComponents().GetComponent <ComponentTransform>(); var dir = m_point - transformComp.GetPosition(); if (transformComp.GetPosition() == m_point || dir.LengthSquared() < 1) { return(AiStateState.ASS_Completed); } var dist = dir.Length(); dir = Vector2.Normalize(dir); transformComp.SetPosition(transformComp.GetPosition() + dir * Math.Min(m_movementSpeed * (float)dt, dist)); if (m_lookat.HasValue) { dir = m_lookat.Value; } var angle = (float)Math.Acos(Vector2.Dot(dir, new Vector2(1, 0))); if (Vector2.Dot(dir, new Vector2(0, 1)) < 0) { angle = -angle; } transformComp.SetAngle(angle); return(AiStateState.ASS_InProgress); }
public AiStateState Update(ShootyShootyBangBangEngine.Controllers.BaseControllers controllers, GameObject owner, double dt) { m_timer += dt; var transformComp = owner.GetComponents().GetComponent <ComponentTransform>(); var startToEnd = m_endPoint - m_startPoint; var dist = startToEnd.Length(); var totalTime = dist / m_movementSpeed; var fac = m_timer / totalTime; if (fac > 1.0f) { return(AiStateState.ASS_Completed); } var tarPos = m_startPoint + startToEnd * (float)fac; var curPosToTarPos = tarPos - transformComp.GetPosition(); curPosToTarPos = Vector2.Normalize(curPosToTarPos); var dot = Vector2.Dot(curPosToTarPos, new Vector2(1, 0)); var angle = (float)Math.Acos(dot); if (Vector2.Dot(curPosToTarPos, new Vector2(0, 1)) < 0) { angle = -angle; } transformComp.SetAngle(angle); transformComp.SetPosition(tarPos); return(AiStateState.ASS_InProgress); }
public AiStateState Update(ShootyShootyBangBangEngine.Controllers.BaseControllers controllers, GameObject owner, double dt) { var transformComp = owner.GetComponents().GetComponent <ComponentTransform>(); var rnd = new Random(); var angle = rnd.NextDouble() * Math.PI * 2; owner.GetComponents().GetComponent <ComponentAiSystem>().AddState(new AiStateGoToPoint(new Vector2(rnd.Next((int)m_minPoints.X, (int)m_maxPoints.X), rnd.Next((int)m_minPoints.Y, (int)m_maxPoints.Y)), m_movementSpeed, new Vector2((float)Math.Sin(angle), (float)Math.Cos(angle)))); return(AiStateState.ASS_InProgress); }
public AiStateState Update(ShootyShootyBangBangEngine.Controllers.BaseControllers controllers, GameObject owner, double dt) { if (DateTime.Now.Second % m_secInterval == 0) { var lastPoint = m_currentPoint - 1; if (lastPoint < 0) { lastPoint = m_points.Count - 1; } var startTime = DateTime.Now; startTime = startTime.AddMilliseconds(-startTime.Millisecond); owner.GetComponents().GetComponent <ComponentAiSystem>().AddState(new AiStateGoToPointTimed(m_points[lastPoint], m_points[m_currentPoint], m_movementSpeed, startTime)); m_currentPoint = (m_currentPoint + 1) % m_points.Count; } return(AiStateState.ASS_InProgress); }
public AiStateState Update(ShootyShootyBangBangEngine.Controllers.BaseControllers controllers, GameObject owner, double dt) { var transformComp = owner.GetComponents().GetComponent <ComponentTransform>(); var centerToMe = transformComp.GetPosition() - m_center; var perp = new Vector2(centerToMe.Y, -centerToMe.X); perp = Vector2.Normalize(perp); perp *= (float)(m_movementSpeed * dt); var newPoint = centerToMe + perp; newPoint = Vector2.Normalize(newPoint); newPoint *= m_radius; newPoint += m_center; var dir = newPoint - transformComp.GetPosition(); if (transformComp.GetPosition() == newPoint || dir.LengthSquared() < 1) { return(AiStateState.ASS_InProgress); } var dist = dir.Length(); dir = Vector2.Normalize(dir); transformComp.SetPosition(transformComp.GetPosition() + dir * Math.Min(m_movementSpeed * (float)dt, dist)); var angle = (float)Math.Acos(Vector2.Dot(dir, new Vector2(1, 0))); if (Vector2.Dot(dir, new Vector2(0, 1)) < 0) { angle = -angle; } transformComp.SetAngle(angle); return(AiStateState.ASS_InProgress); }
public void OnChildStateFinished(ShootyShootyBangBangEngine.Controllers.BaseControllers controllers, GameObject owner, AiStateState state) { }
public AiStateState Update(ShootyShootyBangBangEngine.Controllers.BaseControllers controllers, GameObject owner, double dt) { owner.GetComponents().GetComponent <ComponentAiSystem>().AddState(new AiStateGoToPoint(m_points[m_currentPoint], m_movementSpeed)); m_currentPoint = (m_currentPoint + 1) % m_points.Count; return(AiStateState.ASS_InProgress); }
public ShootyShootyBangBangGame(ShootyShootyBangBangEngine.Controllers.BaseControllers controllers) : base(controllers) { }