private void UpdateFixedPatrol(GameTime gameTime) { waitTimer += (float)gameTime.ElapsedGameTime.TotalMilliseconds; float brakepoint = (speed / acceleration) * 2; if (DistanceBetween((int)Position.X, patrolPointA) <= brakepoint) { if (previousPoint != patrolPointA) { previousPoint = patrolPointA; waitTimer = 0; } nextPoint = patrolPointB; state = Constants.PlatformState.Stopped; } else if (DistanceBetween((int)Position.X, patrolPointB) <= brakepoint) { if (previousPoint != patrolPointB) { previousPoint = patrolPointB; waitTimer = 0; } nextPoint = patrolPointA; state = Constants.PlatformState.Stopped; } if (waitTimer >= waitTime) { GoTo(nextPoint); } }
private void GoTo(int point) { int position = (int)this.Position.X; if (position < point) { direction = Constants.DirectionX.Right; state = Constants.PlatformState.Moving; } else if (position > point) { direction = Constants.DirectionX.Left; state = Constants.PlatformState.Moving; } }
private void UpdateCollapsing(GameTime gameTime) { if (hasTriggered) { state = Constants.PlatformState.Falling; } else { tempVector.X = 0; tempVector.Y = -4; if (CollisionMap == null) { ObjectCollisionEvent e = CollisionHandler.CollisionOccursWithObject(this, tempVector); if (e != null) hasBeenTouched = true; } else { } if(hasBeenTouched) waitTimer += (float)gameTime.ElapsedGameTime.TotalMilliseconds; if (waitTimer > waitTime) hasTriggered = true; } }