예제 #1
0
    /// <summary>
    /// est-ce qu'on peut bouger droite / gauche ?
    /// </summary>
    /// <returns></returns>
    private bool CanMove()
    {
        /*//si on ne bouge pas les input, ne rien faire
         * if (playerInput.Horiz == 0 && playerInput.Verti == 0)
         *  return (false);
         */
        //si on a juste sauté, ne rien faire
        if (!worldCollision.CoolDownGroundedJump.IsReady() || !worldCollision.CoolDownGrounded.IsReady())
        {
            return(false);
        }

        if (playerPenduleMove.IsAirTense)
        {
            return(false);
        }

        //ne pas bouger quand on est gripped
        if (grip.Gripped)
        {
            return(false);
        }

        //si on est en l'air, et pas sur un objet exeption, ne rien faire (pour l'instant !!)
        if (!worldCollision.IsGroundedSafe())
        {
            //ici on est peut être pas grounded, mais on peut être sur ExeptionPlayer ??
            if (!worldCollision.IsGroundeExeptionSafe())
            {
                //ici on est en l'air
                //Debug.Log("ici on est en l'air, ne rien faire");
                playerAirMove.TryToMove();
                return(false);
            }
            else
            {
                //Debug.Log("ici on peut bouger ????? on est su rle player...");
                return(false);
                //ici on est en collision avec un player ? OK
            }
        }

        if (worldCollision.GetSimpleCollisionSafe() == CollisionSimple.Ceilling)
        {
            return(false);
        }

        /*
         * //on est au sol, on bouge les inputs et les coolDown JUMP & MOVE sont OP !
         * Collider coll;
         * if (!worldCollision.PlatformManager.IsWalkable(out coll))
         *  return (false);
         */

        return(true);
    }
예제 #2
0
    /// <summary>
    /// ici effectue un simple jump
    /// </summary>
    private void SimpleJump()
    {
        //get la collision
        CollisionSimple collisionJump = worldCollision.GetSimpleCollisionSafe();

        switch (collisionJump)
        {
        case CollisionSimple.Ceilling:
            Debug.Log("jumpFromCeilling");
            JumpFromCeilling();
            break;

        case CollisionSimple.Ground:
            Debug.Log("jumpFromGround");
            JumpFromGround();
            break;

        case CollisionSimple.Wall:
            if (worldCollision.IsOnCoinGround())
            {
                Jump(Vector3.up);
                break;
            }

            JumpFromWall();
            break;

        default:
            Debug.Log("alors la je sais pas...");
            break;
        }
    }