1. 如何设计场景 房间是构成这整个世界的要素之一,在此我们提供了一个房间的标准物件来让所有的房间继承 。
而如同其他的物件一般,你需要写一个 create() 来设定房间中的叙述、出口、物品、生物等等 。这里,我喜欢说你用 create() 这个函式来赋予这个房间的属性 。
一般来说,要建造一个简单的房间,你只要赋予它基本的属性即可 。当然,我们不认为一个区域中几十个房间没有任何的机关或秘密,是个会吸引玩家一游的好地方 。
下面,提到了一些建造房间所需要留意的事项,也会配合一些例子来说明 。一、基本篇 一个基本的房间,要有 short 、long 、exits 1. 当你在写一个房间的 long 时,其格式为: set("long", @LONG 房间的叙述 。
. LONG ); 其中 @LONG 和 LONG 是互相对应的,你可以用任何字接在 @ 后面,但是前后两个字一定要一样,这样系统才能判别,而房间的叙述写完时,一定要换行后再接第二个 LONG,且同一行不能再有其他任何的字元,不然系统无法判定叙述是否该结束了,会造成编译时的错误 。
而为求区域看起来外观上整齐、统一,房间的长叙述中每一行的长度必须一样,而一行的长度建议为 29 到 32 个中文字,约占萤幕的三分之二 。并且一个房间的叙述最好不要低於三行,区域各个房间的叙述重复性降到越低越好,这样你的区域看起来才不会太过阳春 。
【场景设计怎么写】当然,有时候为了某些目的,比如一个迷宫,你可能会相邻的几个房间都用到一样的叙述,那自然不在此限 。2. 一个房间的出口则以下列格式赋予: set("exits",([ "方向" : "连接到的房间之档名",。
.. ]); 在这里,为了一个以后区域开放后搬移目录的便利性,建议采用__DIR__ 这个由系统提供的巨集来写路径,比如说: "west" : __DIR__"path3",和 "west" : "/u/d/davidoff/goathill/path3",是完全一样的 。但前者显然在以后目录的搬移上方便的多 。
而在下面会提到设定房间中的物品或生物时,也建议采用这种方式写作 。3. item_desc 这是用来设定个别景物的描述,当玩家用 look 这个指令时就会作用 。
其格式为: set("item_desc",([ "景物名称" : "景物叙述",。
.. ]); 其中景物叙述可以是字串或是一个 function,所以你可以利用这个功能加以变化,当玩家 look 一个景物时,可能看到叙述,也可能发生一些特殊的事件,而你就可以在被呼叫的函式中写下这些事件 。
4. objects 可以让这个房间在每次 reset 时载入某些生物或某些物品: set("objects",([ "物品或生物的档名" : 数量,。
.. ]); 如同前面所提到的,建议采用 __DIR__来编写你的路径,而数量则要用整数 。
5. 要为这个房间添上门户时,记得前面必须先 #include。而格式为: create_door("出口方向","门的名称","进入方向",预设状态); 比如说,这里明显的出口有 west、east 和 up 。
而你要让西边有一个关上的红木门,你可以这样写: create_door("west","红木门","east", DOOR_CLOSED); 当玩家进入这个房间时,他会看到:这里明显的出口有 east 和 up 。而当他 look west 时,会看到:这个红木门是关上的 。
其他的一些属性,你可以参考 /doc/build/room_prop 或是读一下标准物件的 room.c 。也建议你可以多用 more here来观看一间特殊的 room 。
二、进阶篇 要让你的区域中富有变化,生动有趣,除了文字叙述的丰富度以外,你更可以利用 init() 这个函式为你的房间增加一些「机关」或「秘密」 。这里,先让我们了解一下 init() 的用途为何,和为什麽要用到它 。
- 奖惩登记表怎么写
- 快乐楷书怎么写
- js验证代码怎么写
- 拖欠工资诉讼怎么写
- 拼音u在拼音本上怎么写
- 戴字楷书怎么写
- 素字篆体怎么写
- 丝蕴洗发水怎么样是大牌子吗 丝蕴洗发水哪个好
- 玫琳凯化妆品怎么样产品好吗 玫琳凯化妆品用着安全吗
- 克丽缇娜怎么样好不好 克丽缇娜怎么样好不好