private static bool StopPathMovement() { bIsBusy = false; movingSprite.animationIndex = (int)BaseCharacter.CharacterAnimations.Idle; if (rotationAtEnd != -1) { movingSprite.rotationIndex = rotationAtEnd; } movingSprite.position = finalPos; movePath.Clear(); movingSprite.UpdatePosition(); return(false); }
private void PerformStep() { //0 = Down, 1 is UP, 2 Left, 3 RIGHT movingSprite.MoverMustUpdateHitboxes = true; switch (directionNextNode()) { case 0: Point tileBefore = (movingSprite.position / 64).ToPoint(); Point tileAfter = ((movingSprite.position - new Vector2((speed / 5f))) / 64).ToPoint(); //tileBefore.Y -= 1; tileBefore.X -= 1; float tempSpeed = (speed / 5f); if (tileBefore != tileAfter) { tempSpeed = 64 % (speed / 5f); } movingSprite.position.Y -= tempSpeed; movingSprite.rotationIndex = (int)BaseSprite.Rotation.Up; break; case 1: tileBefore = (movingSprite.position / 64).ToPoint(); tileAfter = ((movingSprite.position + new Vector2((speed / 5f))) / 64).ToPoint(); tempSpeed = (speed / 5f); if (tileBefore != tileAfter) { // tempSpeed = 64 % speed; } //Console.WriteLine(movingSprite.position); movingSprite.position.Y += tempSpeed; movingSprite.rotationIndex = (int)BaseSprite.Rotation.Down; break; case 2: tileBefore = (movingSprite.position / 64).ToPoint(); tileAfter = ((movingSprite.position + new Vector2((speed / 5f))) / 64).ToPoint(); tempSpeed = (speed / 5f); if (tileBefore != tileAfter) { //tempSpeed = 64 % speed; } movingSprite.position.X += tempSpeed; movingSprite.rotationIndex = (int)BaseSprite.Rotation.Right; break; case 3: tileBefore = (movingSprite.position / 64).ToPoint(); tileAfter = ((movingSprite.position - new Vector2((speed / 5f))) / 64).ToPoint(); //tileBefore.X -= 1; tileBefore.Y -= 1; tempSpeed = (speed / 5f); if (tileBefore != tileAfter) { tempSpeed = 64 % (speed / 5f); } movingSprite.position.X -= tempSpeed; movingSprite.rotationIndex = (int)BaseSprite.Rotation.Left; break; } movingSprite.UpdatePosition(); }