Example #1
0
    //Return the appropriate array based off the direction
    public override FrameData[] this[PlayerDirection.FacingDirections direction]
    {
        get
        {
            switch (direction)
            {
            case PlayerDirection.FacingDirections.North: return(North);

            case PlayerDirection.FacingDirections.NorthEast: return(NorthEast);

            case PlayerDirection.FacingDirections.East: return(East);

            case PlayerDirection.FacingDirections.SouthEast: return(SouthEast);

            default:
            case PlayerDirection.FacingDirections.South: return(South);

            case PlayerDirection.FacingDirections.SouthWest: return(SouthWest);

            case PlayerDirection.FacingDirections.West: return(West);

            case PlayerDirection.FacingDirections.NorthWest: return(NorthWest);
            }
        }
    }
Example #2
0
    private void TransitionToMap(int mapID, PlayerDirection.FacingDirections playerDirection)
    {
        EnablePlayerColliderTrigger();

        // TODO: Start fade out
        MapFade.Create(true, false);
        DontDestroyOnLoad(MapFade.Instance);

        SetCameraFollow(false);
        LoadMap(mapID);

        // Fade in
        MapFade.Instance.FadeIn          = false;
        MapFade.Instance.DestroyOnFinish = true;
        MapFade.Instance.ResetFade(true);

        SetCameraFollow(true);

        // Get the new map
        Map  map       = Map.Instance;
        Rect mapBounds = map.Bounds.DivideBy(32);

        // Note: The code below doesn't work but will work when we've stopped using scenes to load map data
        PlayerCharacter player = PlayerCharacter.Instance;

        // Used to move the player up one step after transitioning to a new map
        float speed = PlayerCharacter.Instance.BaseMoveSpeed;

        player.Direction.SetDirection(playerDirection);

        // Set player's position to the beginning of the next map
        switch (playerDirection)
        {
        case PlayerDirection.FacingDirections.West:
            player.transform.position = new Vector3(mapBounds.xMax - speed, player.transform.position.y);

            break;

        case PlayerDirection.FacingDirections.East:
            player.transform.position = new Vector3(mapBounds.xMin + speed, player.transform.position.y);

            break;

        case PlayerDirection.FacingDirections.South:
            player.transform.position = new Vector3(player.transform.position.x, mapBounds.yMax - speed);

            break;

        case PlayerDirection.FacingDirections.North:
            player.transform.position = new Vector3(player.transform.position.x, mapBounds.yMin + speed);

            break;
        }
    }
Example #3
0
    public void SetData(AnimationData newAnimation, PlayerDirection.FacingDirections direction)
    {
        if (newAnimation == null)
        {
            Debug.LogWarning("null AnimationData passed to SetData. Not playing animation");
            return;
        }

        if (newAnimation[direction] == null || newAnimation[direction].Length == 0)
        {
            Debug.LogWarning("animation " + newAnimation.AnimName + " has no direction data for " + direction + ". Not playing animation");
            return;
        }

        AnimationPlaying = newAnimation;
        Frames           = AnimationPlaying[direction];
        ResetAnim();
    }
    /// <summary>
    /// Plays an animation by name.
    /// </summary>
    /// <param name="animName">The name of the animation to play.</param>
    //// <param name="directionFacing">The direction of the animation to play.</param>
    public void PlayAnimation(string animName, PlayerDirection.FacingDirections directionFacing)
    {
        if (AnimDict.ContainsKey(animName) == false)
        {
            Debug.LogWarning("No animation with name: " + animName + " can be found!");
            return;
        }

        //PlayerDirection.FacingDirections directionFacing =
        //    (playerDirection != null) ? playerDirection.CurDirection : PlayerDirection.FacingDirections.South;

        //Don't reset the current animation if its the same and the direction it's facing is the same
        //if (CurrentAnim != null && CurrentAnim.AnimName == animName && PrevDirection == directionFacing) return;

        PreviousAnim = CurrentAnim;
        CurrentAnim  = AnimDict[animName];
        //PrevDirection = directionFacing;

        AnimPlayer.SetData(CurrentAnim, directionFacing);
    }
Example #5
0
    // The player has collided with the edge of the map
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Vector2 contactPoint = collision.contacts.First <ContactPoint2D>().point;

        Map  map       = Map.Instance;
        Rect mapBounds = map.Bounds.DivideBy(32);

        int newMapID = 0;

        PlayerDirection.FacingDirections direction = PlayerDirection.FacingDirections.East;

        if (contactPoint.x <= mapBounds.xMin)
        {
            newMapID  = map.LeftMapID;
            direction = PlayerDirection.FacingDirections.West;
        }
        else if (contactPoint.x >= mapBounds.xMax)
        {
            newMapID  = map.RightMapID;
            direction = PlayerDirection.FacingDirections.East;
        }
        else if (contactPoint.y <= mapBounds.yMin)
        {
            newMapID  = map.BottomMapID;
            direction = PlayerDirection.FacingDirections.South;
        }
        else if (contactPoint.y >= mapBounds.yMax)
        {
            newMapID  = map.TopMapID;
            direction = PlayerDirection.FacingDirections.North;
        }

        Debug.Log(newMapID);

        // Check if we should transition to a new map
        if (newMapID > 0)
        {
            TransitionToMap(newMapID, direction);
        }
    }
 public override FrameData[] this[PlayerDirection.FacingDirections direction]
 {
     //Always return these sprites regardless of direction
     get { return(Frames); }
 }
        protected void PlayerDirectionChangedEvent(PlayerDirection.FacingDirections newDirection)
        {
            //Debug.Log("NEW DIRECTION: " + newDirection);

            StateMachine.AnimManager.PlayAnimation(AnimToPlay, newDirection);
        }
Example #8
0
 /// <summary>
 /// Gets a FrameData array from a direction.
 /// </summary>
 /// <param name="direction"></param>
 /// <returns></returns>
 public abstract FrameData[] this[PlayerDirection.FacingDirections direction] {
     get;
 }