|
发表于 2004-3-17 11:15:00
|
显示全部楼层
Re:问一个比较初级的问题
有关脚本命令你可以自己写,也就是自己定义你自己的,当然可以用一些公用的脚本编辑器。
对于公用的我没有什么研究,这里就简单说说如何自己写一些简单脚本:
(以RPG为例)
一个RPG必备的几个元素就是引擎、地图编辑器、脚本。引擎完成整个游戏的初始化和过程的运转(同时也要保证对地图文件,脚本文件的读取工作)。地图编辑器就不说了,直接说脚本:
我写过一个小的RPG游戏,可以自己定制自己的脚本并通过解释脚本命令来完成一些控制工作。举一个简单的例子:
Map(地图名);
这就是我自己定义的一个脚本,功能就是选择一个地图文件作为场景。脚本编辑器完成的主要工作就是解释脚本命令,并通过引擎把结果显示出来。我的脚本编辑器大概的工作流程是
ifstream in("脚本文件名");
in.getline(controlcommand,sizeof(controlcommand),'(');
if(controlcommand=="Map")
{
in.getline(mapname,sizeof(mapname),')');
MapManageFunction(mapname);//跳转到专门处理map脚本的函数中执行
}
else(controlcommand=="其他的命令")
{
//其他命令处理;
}
大概的流程就是这样,然后再MapManageFunction()函数中实现调用引擎,读取地图,往屏幕上画图等等工作,这样就解释了Map这个脚本命令。
当然还要有其他的脚本来控制人物的显示,NPC的对话,屏幕的淡入淡出等等一系列的东西,这样就会有一组命令,通过这样的一组命令就可以实现对游戏中的背景,人物和各种角色的初试化设定和控制,实现整个游戏的剧情控制。也是通过这种方法来完成一个游戏的具体实现,即使相同的引擎,通过不同脚本和地图就可以作出一个完全不同的两个游戏。
具体有关脚本的东西我也是一家愚见,有什么不对的还要大家指教。如果楼主还不了解的话就可以上金点时空down他们的圣剑2游戏源码,看看他们的脚本是怎么定义和运用的,相信会大有裨益的! |
|