c_updatehull(ENTITY* ent, var frame)
Diese Anweisung berechnet die Kollisionshülle der angegebenen Entity mit den Vertexpositionen eines bestimmten Vertex-Frames (beginnt mit 1 für den ersten Frame) neu. Wenn Sie die Kollisionshülle eines bestimmten Frames brauchen, rufen Sie diese Funktion auf oder dann, wenn Sie auf ein Frame Mesh-Manipulationsfunktionen angewendet haben.
Parameter:
ent - Entity-Pointer.
frame - Nummer des Frames zur Verwendung für die Hülle.
Modifiziert:
ent.min_x/y/z, ent.max_x/y/z, ent.fat, ent.narrow
Bemerkungen:
- Die Default-Bounding-Box einer Entity wird im ersten Frame nach ihrem Erstellen berechnet. Warten Sie daher einen Frame (wait(1)) ehe Sie die Bounding-Box das erste Mal verändern.
- c_updatehull prüft keine Überschneidungen. Deswegen müssen Sie sichergehen, dass beim Vergrößern der Bounding-Box genug Platz vorhanden ist. Beim Verkleinern gibt es keine Probleme.
- c_updatehull updated die Bounding-Box für Bones-Frames nicht.
- c_updatehull kann einige Zeit zum Ausführen brauchen, denn dabei müssen die Vertices des angegebenen Frames neu geladen werden. Daher sollten Sie c_updatehull nicht bei jedem einzelnen Frame aufrufen, sondern nur bei größeren Animationsänderungen wie beispielsweise einem stehenden Charakter, der nun kniet.
- Wenn Sie Sie die Bounding-Box nur für den ersten Frame brauchen, rufen Sie anstatt c_updatehull(my,1) c_setminmax(my) auf - beides produziert dieselbe Bounding-Bux, c_setminmax ist aber viel schneller.
- Der Status der poygonalen Kollisionshülle wird von game_save nicht gespeichert. Dazu sollte, wenn ein anderer Frame für die Kollisionshülle benutzt werden soll, c_updatehull nach dem Laden erneut aufgerufen werden#.
Geschwindigkeit:
langsam
Beispiel:
wait(1); // wait 1 frame after creation
c_updatehull(my,10);
Siehe auch:
c_setminmax, min_x, max_x, FAT, NARROW, POLYGON
► Aktuelle Version Online