Hi Kartoffel,
danke für deinen Tip! So in der Art hatte ich es auch schon gegoogelt. Trotzdem ist es mir nicht gelungen eine Formel vernünftig in den Code einzubauen.

Hier mein Versuch mit deiner Formel. Ich hebe den speed des Geschosses ganz klein gemacht, damit sie erst einmal langsam fliegt und ich den Weg verfolgen kann. Leider "blitzt" das Geschoss nur kurz auf und ist dann weg.

Code:
function move_rocket()
{
	set (my, PASSABLE); // don't collide with the player
	VECTOR rocket_speed;	
	VECTOR rocket_pos;		
	VECTOR rocket_posold;
	vec_set(rocket_posold.x, my.x); // Startposition der Rakete merken

	my.pan = entBarrel.pan;
	my.tilt = entBarrel.tilt;
	wait (1);
	my.emask |= (ENABLE_ENTITY|ENABLE_IMPACT|ENABLE_BLOCK);	
	my.event = remove_rocket;
	
	my.skill40 = 1234; // I'm a rocket
	my.skill20 = 0;	
	
		
		rocket_speed.x = 3;

		while(my.skill20 < 1000)
		{	
		
		if (my.skill20 > 2) // the rocket has moved away from the player? Then let's reset its passable flag
		reset (my, PASSABLE);
		effect (rocket_trail, 1, my.x, normal); // generate particle trails for the rocket
		
		
		
			rocket_speed.x += 0.9;
			rocket_pos.x += rocket_speed.x * time_step;
			
			c_move (my, rocket_pos, nullvector, IGNORE_PASSABLE);	
	
		
	
			vec_set(rocket_pos.x, my.x); // Momentane Position der Rakete merken		

			c_trace(rocket_posold.x,rocket_pos.x,IGNORE_ME|IGNORE_PASSABLE|ACTIVATE_SHOOT|IGNORE_CONTENT);
//			draw_line3d(rocket_posold.x,NULL,100); // draw line for debug  
//			draw_line3d(rocket_pos.x,vector(0,0,255),100); // draw line  

			vec_set(rocket_posold.x,rocket_pos.x); // Alte Position merken
			
			wait (1);
		}
		remove_rocket();
	}



A8-Com-v 8.47.1