Hi,

Only physX actors can interract together.

Quote:
However, it seems the mass of the ball won't allow the plane to slope to an angle anymore


Perhaps you are setting the tilt after you have created the physX actor. And Perhaps you are creating a PH_RIGID for the plane?

You can only set x/y/z pan/tilt/roll before creating a body, otherwise you neet to call pXent_setposition/pXent_rotate.

If you are creating a rigid body then It will be affected by gravity, that's why it is falling with the ball. What you can do is :
  • Set rotation before creating a body and create a PH_STATIC (It is not recommended to displace or rotate a static actor).
  • Create a PH_RIGID , set rotation, disable gravity, and other flags.
  • Create a kinematic body.


Bellow is an example

Code:
#include <acknex.h>
#include <default.c>
#include <ackphysx.h>

void main()
{
    video_mode = 4;

    physX_open();

    level_load( "" );

    camera.x = -150;

    // Ground
    ENTITY *g = ent_create("CUBE.MDL", nullvector, NULL);
    vec_set(g->scale_x, vector(5, 5, 0.1));

    pXent_settype(g, PH_STATIC, PH_BOX);

    // Static Plane
    ENTITY *sp = ent_create("CUBE.MDL", vector(0, 0, 50), NULL);
    vec_set(sp->scale_x, vector( 0.1, 2, 0.1 ));

    // Set tilt
    sp->roll = 20;

    pXent_settype(sp, PH_STATIC, PH_BOX);    

    // Rigid Plane
    ENTITY *rp = ent_create("CUBE.MDL", vector(0, -20, 35), NULL);
    vec_set(rp->scale_x, vector( 0.1, 2, 0.1 ));

    // Set tilt
    rp->roll = -20;

    pXent_settype(rp, PH_RIGID, PH_BOX); 
    pXent_setbodyflag(rp, NX_BF_DISABLE_GRAVITY, 1);
    pXent_setbodyflag(rp, NX_BF_FROZEN_PAN, 1);
    pXent_setbodyflag(rp, NX_BF_FROZEN_TILT, 1);
    pXent_setbodyflag(rp, NX_BF_FROZEN_ROLL, 1);
    pXent_setbodyflag(rp, NX_BF_FROZEN_POS_X, 1);
    pXent_setbodyflag(rp, NX_BF_FROZEN_POS_Y, 1);
    pXent_setbodyflag(rp, NX_BF_FROZEN_POS_Z, 1);

    // Kinematic Plane
    ENTITY *kp = ent_create("CUBE.MDL", vector(0, 0, 20), NULL);
    vec_set(kp->scale_x, vector( 0.1, 2, 0.1 ));

    // Set tilt
    kp->roll = 20;

    pXent_settype(kp, PH_RIGID, PH_BOX); 
    pXent_setbodyflag(kp, NX_BF_KINEMATIC, 1);

    // Sphere
    ENTITY *s = ent_create("SPHERE.MDL", vector(0, 10, 100), NULL);
    vec_set(s->scale_x, vector(0.2, 0.2, 0.2));

    pXent_settype(s, PH_RIGID, PH_SPHERE);

}