As stated it is possible. The difference is that you will be checking collisions, positions and other properties per 3D object or 3d co-ordinate in a camera view rather than per sprite/image/2D co-ordinate in the screen.
A character can be added to a scene where you can check for collisions against a 3d level object; or a number of 3d level objects; or a number of limbs in certain objects.
Here is a very, very, basic example:
` Set non changing values
#constant PLAYER_ID 1
#constant LEVEL_ID 2
#constant GRAVITY_STRENGTH 0.05
` Draw a texture
ink rgb(40,20,10), 0
get image 1, 0,0,4,4
` Make the player
make object sphere PLAYER_ID, 1 : move object up PLAYER_ID, 5
` Make the level
make object box LEVEL_ID, 512, 8, 4
texture object LEVEL_ID, 1
scale object texture LEVEL_ID, 128,8
` Set the refresh rate with sync on
sync on : sync rate 60
` Fall if not colliding with the level, rise if so. Jump if spacekey is pressed when colliding with the level.
if object collision( PLAYER_ID, LEVEL_ID )
fall# = -0.0001
if spacekey() then fall# = fall# - 0.9
fall# = fall# + GRAVITY_STRENGTH
` Repostion object and camera, then synchronize
position object PLAYER_ID, object position x( PLAYER_ID ) + rightkey()-leftkey(), object position y( PLAYER_ID )-fall#, object position z( PLAYER_ID )
position camera object position x( PLAYER_ID ), object position y( PLAYER_ID ) + 3, object position z( PLAYER_ID ) - 15
point camera object position x( PLAYER_ID ), object position y( PLAYER_ID ), object position z( PLAYER_ID )
You would need to add more code to work with side collision, head collision and other aspects of platform gameplay. Use a progressive [while] condition loop to move objects when no collision occurs, rather than the simple [if] block approach that may send your player through walls if it travels too fast. Note that there are other tools that could be used; such as Dark Physics Character Controller (Minus the Z movement) or Sparkys Collision DLL
to name a few.