天行健 君子当自强而不息

Working with Maps and Levels(3)

Sphere Triggers

You define sphere triggers (see Figure 17.1) by a set of coordinates and a radius.
Sphere triggers have two unique benefits:

■ Spheres are perfect for defining large areas of a map as a trigger, only using
the center coordinates and a radius to define the location of the sphere.

■ The sphere trigger is one of the fastest ways to check for character-to-trigger
collisions in the map trigger engine.

Box Triggers

A box trigger uses bounding boxes to work its magic. Box triggers are the fastest triggers
to process when looking for character-to-trigger collisions, but on the downside,
box triggers can exist only parallel to the world’s axis (the boxes can’t be rotated to
fit your needs). You define box triggers by the coordinates of its opposing corners, as
illustrated in Figure 17.2.

 

Cylinder Triggers

Cylinder triggers are much like sphere triggers, except that with a cylinder trigger,
you can limit the height of the covered area (unlike a sphere trigger, which extends
higher as the radius increases). Cylinder triggers are most effective when used for circular
areas in which you want to keep the height of the trigger from extending into
higher or lower levels. Check out an illustration of cylinder triggers in Figure 17.3.

 

Triangle Triggers

A triangle trigger is similar to a polygon in that both are defined by three points; however,
a triangle trigger’s three points are defined only by their X- and Z-coordinates.
This makes the triangle two-dimensional. To make the triangle work in a 3-D world,
you must assign a single Y-coordinate at which all three points of the triangle are
placed, as well as the height in which the triangular area extends upward. It helps to
think of a triangle trigger as a three-sided box, as shown in Figure 17.4.

 

Triggering a Trigger

After you place the trigger shapes on the map, it’s a simple matter to determine
which trigger is touched by a character. Each trigger has its special way of determining
these character-to-trigger collisions. A sphere uses distance checks, a box
uses bounding box calculations, and a cylinder uses bounding and distance
checks—although the triangle trigger uses bounding checks and also makes sure
that the point in question is contained within the triangle.

When you determine that a trigger has sprung, what do you do? Because each trigger
is assigned an identification number, you can use that number to determine
which action to perform. You can execute a matching script or perform
another hard-coded function. In fact, in the later section “Using Triggers,” you
find out how useful it is to use triggers.

posted on 2007-12-09 15:14 lovedday 阅读(217) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论