Exemplo n.º 1
0
    bool AnimFinished(PlrState state)
    {
        switch (state)
        {
        case PlrState.Jump1:
            return(sprJumpLong.Frame == 3);

        case PlrState.JumpLongMid:
        case PlrState.JumpLongUp:
            return(sprJumpLong.Frame == 7);

        case PlrState.JumpShort:
            return(sprJumpShort.Frame == 7);

        case PlrState.ClimbL:
        case PlrState.ClimbR:
            return(isClimbFinished);

        case PlrState.FallTouch:
            return(sprFall.Frame == 2);

        default:
            GD.Print("## ALERT");
            return(true);
        }
    }
Exemplo n.º 2
0
    void SwitchTo(PlrState newState)
    {
        GD.Print(newState.ToString());
        if (plrState != newState)
        {
            switch (newState)
            {
            case PlrState.Idle:
                TurnOnSpr(SprObj.SprIdle);
                animPlayer.Stop();                      //TODO idle animation
                velocity.x = 0;                         //Stopping in every Idle switch
                break;

            case PlrState.Run:
                TurnOnSpr(SprObj.SprRun);
                animPlayer.Play("run", -1, ANIM_RUN_SPEED);
                break;

            case PlrState.Jump1:
                TurnOnSpr(SprObj.SprJumpLong);
                animPlayer.Play("jump1", -1, ANIM_JUMP_SPEED);
                break;

            case PlrState.JumpLongMid:
                TurnOnSpr(SprObj.SprJumpLong);
                animPlayer.Play("jumplong", -1, ANIM_JUMP_SPEED);
                break;

            case PlrState.JumpLongUp:
                TurnOnSpr(SprObj.SprJumpLong);
                animPlayer.Play("jumplong", -1, ANIM_JUMP_SPEED);
                break;

            case PlrState.JumpShort:
                TurnOnSpr(SprObj.SprJumpShort);
                animPlayer.Play("jumpshort", -1, ANIM_JUMP_SPEED);
                break;

            case PlrState.FallJump1:
                //do nothing
                break;

            case PlrState.Fall:
            case PlrState.FallJumpLong:
                sprFall.Frame = 0;
                TurnOnSpr(SprObj.SprFall);
                break;

            case PlrState.FallDelayed:
                timeToFallAnim = TIME_TO_FALL_ANIM;
                break;

            case PlrState.ClimbL:
                TurnOnSpr(SprObj.SprClimb);
                gravCoeff       = 0.0f;
                velocity.x      = 0;
                velocity.y      = 0;
                GlobalPosition  = GetClimbGlobalPos(climbOffset);
                isClimbFinished = false;
                animPlayer.Play("climbl", -1, ANIM_CLIMB_SPEED);
                break;

            case PlrState.ClimbR:
                TurnOnSpr(SprObj.SprClimb);
                gravCoeff       = 0.0f;
                velocity.x      = 0;
                velocity.y      = 0;
                GlobalPosition  = GetClimbGlobalPos(climbOffset);
                isClimbFinished = false;
                animPlayer.Play("climbr", -1, ANIM_CLIMB_SPEED);
                break;

            case PlrState.FallTouch:
                animPlayer.Play("touch", -1, ANIM_TOUCH_SPEED);
                break;
            }
            plrState = newState;
        }
    }
Exemplo n.º 3
0
    void AdvanceBody(PlrState plrState, float delta)
    {
        switch (plrState)
        {
        case PlrState.Jump1:
            switch (sprJumpLong.Frame)
            {
            //jump1
            case 0:
                break;

            case 1:
                velocity.x += JUMP_DX * delta * headingX;
                break;

            case 2:
                break;

            case 3:
                SlowDownBody(JUMP_NDX * delta * headingX);
                break;
            }
            break;

        case PlrState.JumpLongMid:
            switch (sprJumpLong.Frame)
            {
            //jumpLong
            case 4:
                velocity.x += JUMP_LONG_DX * delta * headingX;
                break;

            case 5:
                break;

            case 6:
                //velocity.x -= JUMP_LONG_NDX * delta * headingX;
                break;

            case 7:
                SlowDownBody(JUMP_LONG_NDX * delta * headingX);
                break;
            }
            break;

        case PlrState.JumpLongUp:
            switch (sprJumpLong.Frame)
            {
            //jumpLong
            case 4:
                velocity.x += JUMP_LONG_DX * delta * headingX;
                break;

            case 5:
                break;

            case 6:
                //velocity.x -= JUMP_LONG_NDX * delta * headingX;
                break;

            case 7:
                SlowDownBody(JUMP_LONG_NDX * delta * headingX);
                break;
            }
            break;

        case PlrState.JumpShort:
            switch (sprJumpShort.Frame)
            {
            //jumpShort
            case 4:
                velocity.x += ROLL_DX * delta * headingX;
                break;

            case 5:
                break;

            case 6:
                velocity.x -= ROLL_NDX * delta * headingX;
                break;

            case 7:
            case 8:
                velocity.x = 0;
                break;
            }
            break;
        }
    }