Problem mit vec_for_screen

Posted By: neo_scripting

Problem mit vec_for_screen - 01/09/11 19:42

Hi,

ich möchte ein Strategiespiel programmieren. Nun habe ich folgendes Problem. Sobald ich einen Cube (ersatz für ein Gebäude) an der Mausposition erstellen möchte, wird der Cube nicht ganz auf Z=0 abgesetz, sondern je weiter hinten ich mit der Maus den Cube erstellen möchte, umso höher wird er im Raum erstellt.

Das ist mein Code:
Code:
function create_cube() // Erstellt einen Würfel
{
	while (mouse_left == 1) {wait(1);} // Wartet bis Maustatse losgelassen wird
	while (1)
	{
		if (mouse_left == 1)
		{
			create_pos.x = mouse_pos.x;
			create_pos.y = mouse_pos.y;
			create_pos.z = camera.z /cos(camera.tilt - 360);
			vec_for_screen (create_pos, camera);
			ent_create ("hauptgebäude.wmb", create_pos, NULL);
			
		}
		wait(1);
	}
}



Was ist an der Definition von vec_for_screen falsch?

MfG

neo_scripting
Posted By: xxxxxxx

Re: Problem mit vec_for_screen - 01/09/11 20:22

Guck mal unter mouse_pos3d das Beispiel an, wenn man den Code etwas ändert (vorallendingen bei c_trace) kann man damit objekte genau an der Mausposition platzieren.
Posted By: neo_scripting

Re: Problem mit vec_for_screen - 01/09/11 20:44

Das klappt ja einwandfrei. Das Problem ist dass der Würfel nicht auf der Z-Achse bei 0 abgesetzt wird. Dafür benötige ich ja vec_for_screen. Ich habe auch durch die Rechnung
Code:
create_pos.z = camera.z / cos(camera.tilt -360);


versucht, dass die Hypothenuse bei einem Winkel von 30° und einer Höhe von camera.z immer bei Z=0 endet. Somit müsste doch eigentlich der Cube bei Z=0 erstellt werden. Dies funktioniert aber irgendwie nicht. Die einzige Methode die mir noch einfallen würd wäre, dass ich mit Gravitation und Kollision arbeite, dann müsste der Cube ja bei Z=0 erstellt werden.

Eine andere Möglichkeit fällt mir absolut nicht ein.
Posted By: MasterQ32

Re: Problem mit vec_for_screen - 01/09/11 20:53

ist ganz einfach:
zwei positionen, am besten from und to
beide auf der Mausposition, die eine mit z = 0 und die andere mit z = 10000
dann einen trace von from nach to.
wenn deine Welt flach ist, dann kannst einfach den Treffenrpunkt des Traces nehmen und verarbeiten.
und du solltest mit dem Trace deine Modelle ignorieren!!
Posted By: neo_scripting

Re: Problem mit vec_for_screen - 01/09/11 21:10

Könntest du zu dem Trace nochmal nen kleines Beispiel schreiben? Hab das nicht so ganz verstanden.

Mit der Gravitation und der Kollisionsabfrage müsste es doch auch eig gehen oder?
© 2024 lite-C Forums