Greetings,
The DLL comes with a feedback system to give the exact points/normals of the various collisions that may occur with your collision object.
The normals may be of best use in this case. A normal is basically a 3D vector with an absolute length of 1 that points toward the center of the ellipsoid from the contact point on the outside of the ellipsoid.
Therefore, if you had a collision with a Y normal greater than 0, then your colliding with a slanted surface that may be pointing completely toward the sky or perhaps just a wall that's very slightly pointed towards the sky.
If you wanted to implement jump code, it may look something like the following:
onGround = 0
collisionCount = CountCollisionsPRO( your_obj )
for t=1 to collisionCount
ynorm# = CollisionHitNormY( your_obj, t )
if ynorm# > 0.3
onGround = 1
break
endif
next t
if onGround = 1
rem put code here for jump command
rem (IE: if jump key hit)
rem give object upward acceleration
rem endif
endif
In summary, if you have a collision with a positive Y normal, the collision happened under the object. If you have a collision with a negative Y normal, the collision happened above the object. (The Y normal is negative because it's pointing from the contact point of the ceiling surface toward the center of your ellipsoid, so the normal is pointing downward, and therefore is negative)
And the same can be done with your other axis if need be.
Let me know if you have any other questions.