action pl_srg()
{
char1 = my;
ENTITY* dummy = ent_create(NULL,nullvector,NULL); //erstelle einen Dummy
while (1)
{
c_move(char1, vector(0, 0, -100 * time_step), nullvector, 0);
c_move(char1, nullvector, vector(0, 0, -2 * time_step), GLIDE);
if (key_w)
{
c_move(char1, vector(15 * time_step, 0, 0), nullvector, GLIDE);
char1.pan = dummy.pan;
char1.skill1 = char1.skill1 + 7.5 * time_step;
if (char1.skill1 > 100)
{
char1.skill1 -= 100;
}
ent_animate(char1, "walk", char1.skill1, ANM_CYCLE);
}
else
{
char1.skill1 = char1.skill1 + 0.7 * time_step;
if (char1.skill1 > 100)
{
char1.skill1 -= 100;
}
ent_animate(char1, "stand", char1.skill1, ANM_CYCLE);
}
if (key_s)
{
c_move(char1, vector(-10 * time_step, 0, 0), nullvector, GLIDE);
char1.pan = dummy.pan;
char1.skill1 = char1.skill1 - 5 * time_step;
if (char1.skill1 > 100)
{
char1.skill1 -= 100;
}
ent_animate(char1, "walk", char1.skill1, ANM_CYCLE);
}
if (key_a)
{
dummy.pan = dummy.pan + 5 * time_step;
}
if (key_d)
{
dummy.pan = dummy.pan - 5 * time_step;
}
if (key_cuu)
{
if (dummy.tilt > -90)
{
dummy.tilt = dummy.tilt - 5 * time_step;
}
}
if (key_cud)
{
if (dummy.tilt < 0)
{
dummy.tilt = dummy.tilt + 5 * time_step;
}
}
if (key_cul)
{
dummy.pan = dummy.pan + 5 * time_step;
}
if (key_cur)
{
dummy.pan = dummy.pan - 5 * time_step;
}
if (key_pgup)
{
if (cam_pos > 50)
{
cam_pos = cam_pos - 5 * time_step;
}
}
if (key_pgdn)
{
if (cam_pos < 300)
{
cam_pos = cam_pos + 5 * time_step;
}
}
vec_set(dummy.x, vector(char1.x, char1.y, char1.z + 20)); //setze den Dummy auf die Entity
camera.x = dummy.x - (cam_pos) * cos(dummy.tilt) * cos(dummy.pan);
camera.y = dummy.y - (cam_pos) * cos(dummy.tilt) * sin(dummy.pan);
camera.z = dummy.z - (cam_pos) * sin(dummy.tilt); //rotiere die Kamera um den Dummy
vec_set(camera.pan, dummy.pan); //rotiere die Kamera
vec_set(camera.tilt, dummy.tilt);
////////////////////////Maus///////////////////////////////////////////////////
if (mouse_right)
{
dummy.tilt += mouse_force.y * mouse_speed * time_step;
dummy.tilt = clamp(dummy.tilt, -90, 0);
dummy.pan -= mouse_force.x * mouse_speed * time_step;
}
mouse_pos.x = mouse_cursor.x;
mouse_pos.y = mouse_cursor.y;
if (mouse_middle)
{
if (cam_pos > 50)
{
cam_pos = cam_pos - 5 * time_step;
}
}
///////////////////////////////////////////////////////////////////////////////
wait(1);
}
}