青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天行健 君子當自強而不息

Controlling Players and Characters(31)


To start, each character needs a definition, which is pulled from the master character
list. You store this definition value in the def variable. To tell similar
characters apart, you assign a unique identification number (ID) to each one.
Think of using identification numbers as you use names. Instead of adding a character
named “George” into the game during play, you refer to that same character
as character 5.

Each character being tracked is of a specific type, either a PC, an NPC, or a monster.
To determine the value for Type, use the following three macros:

#define CHAR_PC 0
#define CHAR_NPC 1
#define CHAR_MONSTER 2

Next are the character’s artificial intelligence settings. Remember that a character
can stand in place, wander around, walk a route, follow another character, or evade
another character. The artificial intelligence of each character is stored in the ai
variable and can be set to one of the following macro values:

#define CHAR_STAND 0
#define CHAR_WANDER 1
#define CHAR_ROUTE 2
#define CHAR_FOLLOW 3
#define CHAR_EVADE 4

Finally, each character needs to be enabled in order to be updated. The update_enable flag
determines this, and setting it to true lets the controller update the character every
frame, whereas setting the flag to false means that the character is never updated
(until enabled, that is).

You need to store the character’s MCL definition for referencing, and for characters
with an inventory, you contain the ICS.

Because the character’s definition stores only the maximum values of
the abilities and attributes, the sCharacter structure needs a way to
track the current values as they change through game-play. This
includes the health points, mana points, status ailment flags, and the
current charge of the character.

NOTE
Remember that characters can perform specific actions (attacking or casting a
spell, for example) only when their charges are at full peak.This charge rate increases
at the rate defined within the MCL.

As characters move around performing their various actions (moving, idling,
attacking, and so on), you need to provide a way for their actions and positions
to be tracked. In addition, their last known animation needs to be maintained
(in order to update their animation), as well as the last time their animation was
updated.

You also need to provide a way to prevent characters that perform specific actions
from being updated until the completion of those actions. When a character is
attacking, for example, there’s no need to update the character any further until
the character finishes swinging the weapon. What is needed is a countdown timer
to lock a character’s actions; this countdown timer is action_timer.

To permanently prevent a character from being updated, you use a second variable,
called is_lock. If you set is_lock to true, the character controller will not update the
character until you set is_lock to false.

When a character attacks another one, the pointers to both the attacking character
and victim character are stored in their respective sCharacter structures. The attacker
remembers the victim while the victim remembers the attacker. Also, when a character
uses a spell, the MSL spell number is stored, along with the spell’s target coordinates
and the type of character to target (CHAR_PC, CHAR_NPC, or CHAR_MONSTER).

Recall that characters have actions, and those actions have a set of associated animations.
The reason for storing the attacker, victim, and spell information (as well
as the following item information) is that a character’s action and animation must
be completed before the results of the action take place. Once an attacking character
swings a weapon, the results of the attack are calculated. The same goes for
spell; once a character casts a spell, the spell information in the sCharacter structure
is used to determine who, or what, is affected.

The same goes for using items; the pointer to the item used during a use item
action is stored, as well as the pointer to the ICS cCharItem structure of the character
(in order to remove the item if it was marked as USEONCE).

You’re about halfway through the structure. Now, you store the information about
the character’s artificial intelligence. You’ve already read about most of the following
data. You have the distance to follow or evade a character, along with the
pointer to the character to follow or evade.

For characters that use a bounding area, you store the minimum and maximum
coordinates, followed by the route information.

Moving on, you use a trio of variables to store a simple message that is overlaid on
top of a character during game-play (as illustrated in Figure 16.15).

Character messages help relate tiny bits of information, as Figure 16.15 shows.
To set a message, copy the message string (up to 128 characters) into the Message
buffer, set the amount of time (in milliseconds) to display the message, and assign
a color to the text to be displayed.

Finishing up the sCharacter class variables is the Graphics Core cObject object that
maintains the character’s mesh and animation. To enhance the visual appearance
of the characters, a separate mesh and object are used to represent a character’s
weapon. This weapon mesh and object are configured any time a new weapon is
equipped. Last comes the linked list pointers prev and next.

That’s a lot of information to store for each character, and to help the controller
prepare a structure every time a new character is added to the fray, the sCharacter
structure comes complete with a constructor and destructor in order to prepare
the data and help release its resources.

And that’s it! I told you sCharacter was a big structure, but it is nothing compared to
the character controller class that uses the structures.

posted on 2007-12-04 00:08 lovedday 閱讀(241) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


公告

導航

統計

常用鏈接

隨筆分類(178)

3D游戲編程相關鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美一级二级三级| 亚洲欧美综合| 欧美激情综合| 亚洲乱码日产精品bd| 亚洲国产精品视频| 欧美成人一区二区三区片免费| 国语精品中文字幕| 欧美激情一区二区三级高清视频 | 亚洲欧美日韩精品久久久久| 亚洲免费观看高清在线观看| 欧美色网在线| 欧美一区观看| 久久亚洲一区二区| 亚洲三级观看| 亚洲视频图片小说| 狠狠久久亚洲欧美专区| 亚洲成人自拍视频| 久久三级视频| 鲁大师成人一区二区三区| 亚洲乱码视频| 亚洲欧美国产高清| 亚洲第一在线| 一区二区日韩| 一区二区视频欧美| 一区二区三区欧美| 黄网站免费久久| 一个色综合av| 在线视频观看日韩| 亚洲天堂免费观看| 亚洲黄色成人网| 亚洲午夜小视频| 亚洲人成人一区二区在线观看| 亚洲特级片在线| 亚洲人成小说网站色在线| 亚洲手机视频| 99re66热这里只有精品4| 亚洲网站在线| 亚洲日韩视频| 欧美一级视频一区二区| 日韩亚洲视频| 老司机午夜免费精品视频| 亚洲欧美日韩一区二区三区在线 | 一本久道久久综合婷婷鲸鱼| 国内精品一区二区三区| 亚洲深夜av| 亚洲精品久久久久久一区二区| 亚洲综合第一| 亚洲图片在区色| 欧美国产欧美综合| 裸体丰满少妇做受久久99精品| 国产精品久久久久久影视| 91久久久久久久久| 亚洲夫妻自拍| 久久夜色精品国产| 久久久欧美一区二区| 欧美午夜视频| 一本久道久久综合中文字幕| 亚洲欧洲一区二区三区| 久热精品在线| 欧美激情一区二区三级高清视频| 国内伊人久久久久久网站视频| 亚洲视频免费在线| 亚洲欧美成人| 国产精品手机视频| 亚洲一区影院| 久久精品综合一区| 国产一区观看| 久久国产99| 免费欧美日韩| 亚洲国产精品尤物yw在线观看| 久久久噜噜噜久久狠狠50岁| 久久久美女艺术照精彩视频福利播放| 国产欧美一区二区三区沐欲| 亚洲一级片在线看| 午夜久久美女| 韩国av一区二区三区| 久久精品久久99精品久久| 久久久午夜电影| 韩国一区二区在线观看| 久久精品动漫| 亚洲国产日韩欧美在线动漫| 亚洲精品久久久久久久久| 欧美日韩第一区日日骚| 亚洲手机成人高清视频| 久久国产精品第一页| 极品少妇一区二区三区| 免费在线观看成人av| 亚洲精品一区二区三区不| 亚洲天堂av高清| 国产精品一区二区三区四区五区| 欧美一区二区大片| 欧美www在线| 亚洲视频欧美在线| 国产一级揄自揄精品视频| 久久亚洲精品伦理| 亚洲人成网在线播放| 欧美亚洲免费电影| 精东粉嫩av免费一区二区三区| 欧美大片免费观看在线观看网站推荐| 亚洲韩日在线| 欧美一区免费视频| 亚洲激情二区| 国产精品入口尤物| 欧美成人激情在线| 亚洲欧美日韩国产一区二区三区| 久久一区欧美| 亚洲午夜一区二区三区| 国内精品久久久久久久果冻传媒| 欧美大片va欧美在线播放| 亚洲女优在线| 亚洲狼人综合| 免费欧美视频| 久久av最新网址| 一个色综合av| 亚洲高清在线精品| 国产日韩欧美制服另类| 欧美高清不卡| 欧美国产激情| 亚洲精品自在在线观看| 久久超碰97人人做人人爱| 亚洲精品国产精品乱码不99按摩 | 免费美女久久99| 亚洲欧美日韩精品久久| 亚洲国产黄色片| 久久视频在线免费观看| 亚洲一区影音先锋| 日韩视频在线观看免费| 国产综合婷婷| 国产拍揄自揄精品视频麻豆| 欧美视频日韩| 欧美人与性动交α欧美精品济南到| 久久激情五月婷婷| 亚洲欧美日韩一区二区| 亚洲视频在线视频| 日韩性生活视频| 亚洲人永久免费| 亚洲人被黑人高潮完整版| 欧美成人免费在线观看| 久色成人在线| 另类图片综合电影| 久久亚洲色图| 欧美aⅴ一区二区三区视频| 久久久久久久久蜜桃| 久久精品二区三区| 欧美亚洲免费在线| 欧美一区二区在线| 欧美自拍偷拍午夜视频| 欧美一级二级三级蜜桃| 欧美一区二区私人影院日本| 香蕉国产精品偷在线观看不卡| 亚洲一区尤物| 欧美综合国产| 久久亚洲风情| 欧美高清在线精品一区| 亚洲国产美女| 亚洲人成毛片在线播放| 99这里只有久久精品视频| 妖精视频成人观看www| 一区二区三区四区在线| 亚洲欧美变态国产另类| 久久精品国语| 欧美福利电影在线观看| 欧美日本在线看| 国产精品海角社区在线观看| 国产精品揄拍500视频| 激情综合色丁香一区二区| 亚洲国产色一区| 在线视频中文亚洲| 欧美一区二区视频免费观看| 美女在线一区二区| 亚洲精品国产系列| 亚洲欧美日韩电影| 老司机精品视频网站| 欧美视频在线观看一区二区| 国产毛片一区二区| 亚洲欧洲在线观看| 亚洲欧美日韩国产中文在线| 久久精品二区| 亚洲人成网站精品片在线观看| 中文日韩在线视频| 久久精品国产99精品国产亚洲性色 | 亚洲一区二区三区四区在线观看 | 国产一区二区三区的电影| 亚洲国产一区二区在线| 亚洲欧美激情精品一区二区| 久久影音先锋| 一本色道久久综合亚洲精品小说 | 亚洲图片在区色| 猫咪成人在线观看| 国产精品区二区三区日本 | 国产欧美高清| 日韩视频永久免费观看| 欧美一区二区三区成人| 亚洲国产成人久久综合| 欧美一区二区三区免费观看| 欧美精品免费播放| 一色屋精品视频免费看| 欧美在线看片| 中国av一区| 欧美日韩精品一区二区|