天行健 君子当自强而不息

Working with Maps and Levels(2)

Using Character Map Lists in Your Game

Using character map lists is a quick way to place characters in a map. When you
load a map into memory, load the matching character map list and insert the characters.
Although this method of adding characters to a map seems desirable, you’ll
need a bit more flexibility at times, and that’s when using scripts comes into play.

 

Script Placement

As I said earlier in this section, you can also use scripts to insert characters into a
map. Scripts give you more control over where and when a character is placed on
a map than using direct placement does.

For example, imagine that you want to track time in your game. At nighttime, all town
vendors are at home, so the marketplace is empty. Guards are in the vendors’ places,
so your game needs to know which characters to place—the vendors or the guards.

You might notice that I’m coming up empty here by not defining a class for loading
character placements on maps. How are your characters going to know where
to be placed on your maps? As you might have guessed, you can use the Mad Lib
Script system to create and incorporate an action template
and a script processor into your project—the script processor then assumes the task
of adding characters to the map based on the scripts you write for your game.

A sample action template that adds characters to the map might look like this:

“Add character # ~ to map at coordinates ~, ~, ~”
INT 0 65535
FLOAT -5000 5000
FLOAT -5000 5000
FLOAT -5000 5000

With that single action defined, you can construct small scripts that place a character
(by a unique identification number) on the map based on the X-, Y-, and Zcoordinates
you provided. Quick, clean, and right to the point, scripting is definitely the way to go.

 

Using Map Triggers

Cause and effect—two words that say it all. In your world, nothing happens unless
you specifically tell it to. Most events in your game happen when a character picks
up an item, walks past a certain spot, or even tries to talk to another character.
Those events are called triggers, and once a trigger has been signaled, a series of
effects are sure to follow. Those effects usually take the form of a script being
processed.

The problem at this point isn’t dealing with the scripts, but figuring out how to
trigger them. Programming a trigger for things like picking up an item is easy
enough; just assign a number to the item description and process the appropriate
script if that item is picked up. The same goes for talking to characters.

Maps are a whole new deal. Maps come in all shapes and sizes, and trying to figure
out when a character touches a certain spot on a map is the problem at this point.
Well, I’m kidding, as that’s not really a problem. The trick is to mark sections of
the map with geometric shapes that are used to quickly check whether a character
steps inside the shape.

The geometric shapes you want to use are spheres, boxes, cylinders, and triangles.
Take a look at each one and how they all work out in the whole trigger scheme.


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


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


公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论