• <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>

            天行健 君子當(dāng)自強(qiáng)而不息

            Putting Together a Full Game(5)

             

            Developing the Scripts

            You control all The Tower’s game content, such as dialogue, through the use of scripts.
            The Mad Lib Script system is in use here. A single action template, Game.mla,
            contains a number of actions that will be useful in your project. More than 200 lines
            in length, the game’s action template is a little too long to list here, so I highly suggest
            that you open the action template while reading through this section.

            The action template is split into the following six groups of actions:

            ■ Script flow. Much like a standard program, scripts execute actions starting at
            the beginning of the script. The script flow continues until the end of the
            script. Scripts also use conditional if...then checking (checking the status of
            internal flags and variables) to change the flow of the script’s execution.

            ■ Character control. This includes adding, removing, moving, and setting the
            character’s AI settings.

            ■ Item controls. These check whether items exist and add and remove items
            in a character’s inventory.

            ■ Barriers and triggers. This group of actions enable you to add, enable, and
            remove map triggers.

            ■ Sound and music. You can play various sound effects and songs using this
            group of actions.

            ■ Miscellaneous. A group of actions that doesn’t fit into the previously listed
            groups.

            You use the preceding actions to construct the game’s scripts. Once you construct
            the scripts, you can use them to control the flow of the game. You trigger the
            scripts used by the game in six ways—the player talking to another character, the
            player touching a map trigger, and a character reaching the last route point in an
            assigned route, entering a level, starting combat, or ending combat.

            You name the scripts that are called when the player talks to another character
            according to the character’s identification number, which you append to the word
            char. For example, character #2 has a script file named char2.mls that is executed
            any time the player clicks that character with the mouse.

            You place map triggers in each level by using the script actions. Whenever a trigger
            is touched, a script executes. You name the map triggers by using the word trig followed
            by the trigger’s identification number—such as trigger #4 using the script
            filename of trig4.mls.

            When entering a level, use the word scene followed by the map level’s
            assigned number. For example, when the character enters map #4, the
            script file scene4.mls is executed.

            The final three methods of executing a script use a three-letter script filename
            that is appended with the
            associated character’s identification number or map level number. For end-of-route
            scripts, you use eor followed by the character’s identification number. For example, when character #2
            reaches the last point on a route, the script named eor2.mls is executed.

            For the start of combat, use soc followed by the map level number for the filename
            of the script. The same applies to the end-of-combat method, except you use eoc—
            for example, eoc3.mls, which is executed when combat ends in map level #3.

            With the six script file-naming methods in mind, check out the following list of
            scripts used in The Tower:

            ■ Char1.mls, Char2.mls, Char3.mls, Char6.mls, and Char7.mls. These are the
            scripts that are executed whenever the player clicks a character with the
            mouse. Characters 1, 2, and 3 are villagers, whereas characters 6 and 7 are
            Granite and the Evil Lord, respectively.

            ■ SOC1.mls, SOC2.mls, SOC3.mls, SOC4.mls, and SOC5.mls. These are the
            start-of-combat scripts for each level. These play only the third assigned song
            in the game.

            ■ EOC1.mls, EOC2.mls, EOC3.mls, EOC4.mls, and EOC5.mls. The end-ofcombat
            scripts typically restore the music to the level’s original song.

            ■ EOR0.mls, EOR4.mls, and EOR5.mls. Only three characters in the game
            walk along routes—the player during the first level of the game, the demon
            that is attacking the player in the village at the start of the game, and the
            guard that runs to warn his Evil Lord.

            ■ Scene1.mls, Scene2.mls, Scene3.mls, Scene4.mls, and Scene5.mls. Each scene
            starts by playing music and setting up all characters that belong in that level.

            ■ Trig1.mls, Trig2.mls, Trig3.mls, Trig4.mls, Trig5.mls, Trig6.mls, Trig7.mls,
            and Trig8.mls. You use the map triggers solely to move the player from one
            level to another whenever the player tries to leave a particular level.

            The majority of the scripts are basic. For example, check out the trig2.mls script:

            Set character id=(*0*) direction to (*0.000000*)
            Teleport character id=(*0*) to map (*1*) at (*100.000000*) (*0.000000*) (*-170.000000*)

            The purpose of the trig2.mls, which is placed in the second scene (the bridge), is
            to teleport the character to the first map (the village) and to change the player’s
            direction. To see a more advanced script, check out scene4.mls, which is executed
            when the player enters the fourth level:

            // (*Store scene #*) //
            Set variable (*1*) to (*4*)
            ————————————-
            // (*Play scene music *) //
            Play music (*1*)
            ————————————-
            // (*Add teleporter triggers *) //
            Add triangle trigger id=(*6*) at
            (*-177.00000*) (*200.000000*) (*-144.000000)
            Add triangle trigger id=(*7*) at
            (*177.00000*) (*200.000000*) (*210.000000)
            ————————————-
            // (*Add Granite is not killed already *) //
            if flag (*8*) equals (*FALSE*) then
            Add character id=(*6*) definition=(*3*) type=(*NPC*) at XPos=(*170.000000*) YPos=(*0.000000*) ZPos=(*-60.000000*)
            direction=(*3.925000*)
            Set character id=(*6*) AI to (*Stand*)
            EndIf

            Although it’s certainly much longer than the other scripts in the game, the
            scene4.mls script is fairly simple. The script starts much like the other scene scripts
            do—by storing the scene’s map number in variable #1 and playing the level’s associated
            song. From there, two triggers are placed in the scene that teleport the
            player back down to the ground level of the tower or to the Evil Lord’s chamber.

            Finishing up the script, flag #8 is checked, and if set to FALSE, a character is added
            to the level. This character, Granite, is character #3 in the master character list. In
            the game engine, Granite is assigned the character identification number 6. At
            first, Granite begins as an NPC (non-player character), merely standing still and
            waiting for the player to speak to him.

            When he is spoken to, Granite’s script is processed—some words are exchanged
            between Granite and the player, and then Granite’s type is changed to Monster.
            When the player dispatches Granite, the end of combat script sets flag #8 to TRUE,
            thereby skipping the portion of the scene4.mls script that adds Granite to the map
            when the player reenters scene #4. Ingenious, isn’t it?

            In the section “Processing Scripts,” later in this chapter, you find out how the
            scripts in The Tower are processed. As for now, move on to defining how the player
            interacts with the game.

            posted on 2007-12-28 18:48 lovedday 閱讀(305) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            公告

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關(guān)鏈接

            搜索

            最新評(píng)論

            国产精品青草久久久久婷婷 | 久久精品这里热有精品| 精品久久久久久无码中文野结衣| 久久人人爽人人爽人人AV东京热 | 国产99久久精品一区二区| 狠狠精品久久久无码中文字幕| 午夜精品久久久内射近拍高清| 久久国产午夜精品一区二区三区| 久久亚洲国产中v天仙www| 狠狠色婷婷久久一区二区三区| 精品无码久久久久国产| 久久午夜无码鲁丝片| 日韩欧美亚洲综合久久 | 久久九九亚洲精品| 国产精品岛国久久久久| 88久久精品无码一区二区毛片 | 久久综合九色综合精品| 亚洲国产精品久久久久婷婷软件 | 婷婷综合久久狠狠色99h| 久久91精品国产91久久户| 91久久精一区二区三区大全| 色偷偷888欧美精品久久久| 热99re久久国超精品首页| 久久人人爽人人爽人人片AV麻豆 | 国产成人精品久久综合| 久久久中文字幕日本| 2021国内精品久久久久久影院| 久久亚洲AV成人无码电影| 办公室久久精品| 久久强奷乱码老熟女网站| 久久国产精品一国产精品金尊| 99久久国产热无码精品免费久久久久 | 久久久久青草线蕉综合超碰| 国产精品久久久久jk制服| 精品无码久久久久久国产| 久久精品国产99国产精品导航| 国产精品欧美久久久天天影视 | 久久精品国产亚洲AV不卡| 色综合久久久久综合体桃花网| 精品久久久久久无码国产| 日韩人妻无码一区二区三区久久 |