ihr habt mir schon sehr geholfen aber es gibt immer wieder probleme wo ich net weiter komme smirk

wie krieg ich eine Kollisionserkennung bei der camera hin ?
ich will das egal wie man sie dreht, die nicht unter dem boden oder in einer wand verschwindet. ich hab im lite-c workshop und handbuch rumgeblätert aber nix gefunden, wär schön wen jemand mit einem passenden code helfen könnte

mein code:

Code:
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);
	}
}



Last edited by DrBong; 05/22/10 05:44.