Vertex Koordinaten Problem

Posted By: chrisp1

Vertex Koordinaten Problem - 05/16/12 16:26

Also ich versuche mich momentan an einem Spiel, bei dem man mit einem Raumschiff im Weltraum fliegt und Planeten anbohrt. Zum anbohren der Planeten habe ich einen Code gefunden und diesen etwas verändert. Allerdings habe ich dabei ein Problem:

ent_nextvertex funktioniert bei Modellen nicht und somit kann ich die Position des Vertexes nicht bestimmen auf den Gerade geziehlt wird.

So habe ich es zuerst versucht :
Zuerst habe ich c_trace ausgeführt und anschließend wollte ich die Nummer des Nahesten Vertex bestimmen.
vertex_nummer = ent_nextvertex(you,hit.x)
Da dies bei modellen jedoch immer 0 liefert ist jetzt meine Frage wie ich das Problem anders lösen könnte.

Also nochmal zusammengefasst heißt das ich versuche die Nummer des Vertexes zu kriegen, den ich mit c_trace getroffen habe(oder zumindest den der am nächsten daran ist).
Hat irgendwer ne Idee ?
Ich hoffe mir kann da jemand weiterhelfen grin

Mfg chrisp1

Posted By: fogman

Re: Vertex Koordinaten Problem - 05/16/12 17:03

Benutze im c_trace den mode SCAN_TEXTURE. Anschliessend enthält hit.vertex die Vertexnummer des Vertex der am nächsten an der Trefferstelle liegt.
http://www.conitec.net/beta/hit.htm


Posted By: Superku

Re: Vertex Koordinaten Problem - 05/16/12 17:07

SCAN_TEXTURE im trace-Modus und danacht hit.vertex. Ich glaube aber zu wissen, dass dies immer der erste Vertex des Dreiecks ist, das getroffen worden ist. Wenn deine Polygone sehr groß sind, müsstest du also unter Umständen einen aufwändigeren Test durchführen und bspw. über alle Vertices iterieren.
Posted By: chrisp1

Re: Vertex Koordinaten Problem - 05/16/12 17:08

@superku naja vorerst reicht die größe der Polygone noch aus damit es gut aussieht

Hat super funktioniert grin
Danke euch laugh
Allerdings hätte ich da noch eine Frage: Wenn ich nun mehrere Planeten habe und einen davon verändere, dann werden alle Planeten die die selbe Modell datei verwenden mit verändert. Kann man dies verhindern so das nur 1 Planet geändert wird ?
Posted By: fogman

Re: Vertex Koordinaten Problem - 05/16/12 18:05

Per ent_clown äh ent_clone grin
http://www.conitec.net/beta/ent_clone.htm
Posted By: chrisp1

Re: Vertex Koordinaten Problem - 05/16/12 18:13

danke fogman smile
Jetzt passt alles grin
NEUES PROBLEM frown
| | | |
| | | |
V V V V





Posted By: chrisp1

Re: Vertex Koordinaten Problem - 05/17/12 15:29

So jetzt habe ich ein neues Problem.
Hier erst mal den code den ich zum anbohren des Planeten verwende :

function dig_hole()
{
var vertex_num;
VECTOR dig_direction;
VECTOR vertex_position;
VECTOR trace_target;
VECTOR planet_position;

while(!player){wait(1);}
while (1)
{
vec_set(trace_target,vector(1000,0,0)); // firing range 1000 quants
vec_rotate(trace_target, player.pan);
vec_add(trace_target, spaceshipweapon.x);
vec_set(dig_direction,vector(50,0,0)); // dig strength = 50
vec_rotate(dig_direction,player.pan);
if (c_trace(spaceshipweapon.x,trace_target, IGNORE_PASSABLE | USE_POLYGON| SCAN_TEXTURE ) > 0) // test
{
draw_point3d(hit.x,vector(50,50,255),100,10);
draw_line3d(spaceshipweapon.x,NULL,100); /// draw a line from the cannon
draw_line3d(hit.x,vector(0,0,255),100); /// to the hitpoint
}
if (key_ctrl && HIT_TARGET && you && ent_type(you) == 5 ) // fire onto model
{
vertex_num = hit.vertex; // get the number of the nearest vertex
CONTACT* c = ent_getvertex(you,NULL,vertex_num);

vec_for_vertex(vertex_position,you,vertex_num); // get the vertexposition
draw_point3d(vertex_position,vector(50,225,50),100,10);
vec_set(planet_position,you.x); //save planet coordinates
vec_add(dig_direction,vertex_position); // get new vertex position
// vec_add(vertex_position,dig_direction);
c.v = NULL;
vec_set(c.x,dig_direction); //set new vertex position
ent_setvertex(you,c,vertex_num);// update the mesh
c_updatehull(you,NULL); // update hull
wait(-0.2); // wait laugh
}

wait(1);
}
}

Wenn ein Planet genau auf x=0 y=0 und z=0 liegt funktioniert alles super.

Liegt er aber ein bisschen daneben, so entstehen riesige Löcher und der Vertex bewegt sich von der Mitte(0/0/0)ziemlich stark weg.
Hat jemand ne Idee woran das liegen könnte ?
Ich hoffe ihr könnt mir weiterhelfen laugh
© 2024 lite-C Forums