pXent_settriggerflag
(ENTITY* entity, var type, var trigger)
Diese Funktion verwendet das Volumen einer statischen Physik-Entity als Auslösebereich, der einen ENABLE_TRIGGER-Event auslöst.
Parameter:
entity |
Registrierte PH_STATIC Entity |
type
|
NX_TRIGGER_ON_ENTER
NX_TRIGGER_ON_LEAVE
NX_TRIGGER_ON_STAY
NX_TRIGGER_ENABLE (sets all 3 flags together) |
trigger |
1 = an, 0 = aus |
Rückgabewerte:
Nummer des Auslösebereichs, wenn erfolgreich, ansonsten 0.
Bemerkungen:
- Diese Funktion setzt auch das Flag ENABLE_TRIGGER der Entity.
- In der Eventfunktion ist der me- / my-Pointer die Entity mit dem Auslösebereich, der you-Pointer ist der Actor, der mit dem Auslöser kollidiert.
- Physik-Triggerbereiche funktionieren nur mit Physik-Entities und können in Fällen benutzt werden, in denen ein nicht-rechteckiger Auslösebereich nötig ist. Für normale rechteckige Triggerzonen, die mit allen Entities funktionieren, verwenden Sie die region_check Funktion. Setzen Sie kein Triggerflag bei dynamischen (PH_RIGID) Physikentities.
Geschwindigkeit:
Schnell
Beispiel:
function EventTrigger()
{
reset(my,TRANSLUCENT); //to visualize the collision
pX_setforcemode(NX_FORCE);
pXent_addexplosion(you,my.x,500,my.max_x/2); // you is the entity that collides with the trigger object
wait(-0.5);
set(my,TRANSLUCENT);
}
...
ENTITY* trigger_zone = ent_create("earth.mdl",vector(0,0,0),NULL);
pXent_settype(trigger_zone,PH_STATIC,PH_SPHERE);
pXent_settriggerflag(trigger_zone, NX_TRIGGER_ON_ENTER, 1);
trigger_zone.event = EventTrigger;
Siehe auch:
pX_setforcemode,
pXent_addexplosion,
pXent_settype