New jumper code

Just created a small code in a workshop for kids, that solves the jumping part different that those others, because one boy was interested in a game called Icy Tower.
As always, I tried to keep it as simple as possible, but I didn't find an easier way than introducing at least c_move and c_trace to them.
c_trace is used here the other way round than usual, it traces only from center to the 'feet', testing whether c_trace returns anything, if it returns something, it means it is on ground, and therefor jumping is allowed.

Use the cursor keys for playing.
Code:
#include <acknex.h>
#include <default.c>
#define PRAGMA_ZERO

function player_one();//Dies ist ein Prototyp
function plattform();

var height = 0;

function main()
{
	fps_max = 60;
	level_load(NULL);
	ent_create(SPHERE_MDL,vector(600,0,0), player_one);
	ent_create(CUBE_MDL,vector(600,0,-20), plattform);
	
	while(height < 10000)
	{
		height += 100;
		ent_create(SPHERE_MDL,vector(600,random(100)-50+height*0.001,height), plattform);
	}
}

var jump = 0;

function player_one()
{
	player = me;
	while(me)//Wiederholung
	{
		camera.z = player.z;
		if(c_trace(vector(my.x,my.y,my.z-0),vector(my.x,my.y,my.z-2),IGNORE_ME|USE_BOX) > 0)
		{
			jump = key_cuu*8;
		}
		jump += -0.2;
		c_move(me,vector(0,key_cul - key_cur,jump),vector(0,0,0), GLIDE);
		wait(1);//Warten auf die anderen Funktionen
	}
}

function plattform()
{
	set(my, POLYGON);
	my.scale_y = 3;
	while(player == NULL)
	{
		wait(1);
	}
	while(me)//Wiederholung
	{
		if(player.z > my.z + 200)
		{
			ent_remove(me);
		}
		wait(1);//Warten auf die anderen Funktionen
	}
}