浅谈AVG游戏中的脚本

  最近因为笔记本数据丢失,翻网盘的时候找到了大学时候写的基于XNA的2D游戏引擎的代码,和为这个引擎写的使用示例。

 其中比较大点的示例就是一个ACT游戏,一个AVG游戏和一个A*寻径算法。

 因为当时的AVG游戏的脚本没有加密,就拿出来了看了一下。


  谈到脚本,我想大家都不陌生,通过简易快速和可扩展性俘获大家的脚本语言比比皆是。

  之前在百度博客的时候,就有很多人问道过AVG游戏的脚本。


  其实AVG游戏的脚本,就是比较简单的逐行运行的脚本,大多数时候,都可以自己简单的定义一下脚本命令然后自己进行解析执行。

  下面给大家看看我之前的AVG游戏的脚本。


  浅谈AVG游戏中的脚本_第1张图片


  最开始是几个set命令。前面是名称,后面其实是相应的资源的代号。使用中文进行set,可以在后面写脚本时更能清楚的使用。

  audio_start就是播放音乐的指令,后面的音乐代号其实也可以在开头用set进行中文化,不过由于音乐的数量并不多,在这里就直接播放了。

  show_text 就是显示文本后面有文本内容, 使用的字体的代号,以及显示的位置。后面的游戏截图会显示的。

  disapp_all_text就是将之前显示的文本都消失。

  fadein back(家) 就是家的背景渐变显示出来。

  同理,fadeout back。就是将背景渐变的消失。

  string xxxxx。 也就是AVG游戏中的逐字显示文本了,通常是独白。

  name xx string xxx。 就是AVG游戏中某个人物说话了。 前面是人物名称。


  下面看看后面的脚本:


浅谈AVG游戏中的脚本_第2张图片

  wait指令,其实是不进行的操作的,就是延迟一条脚本。这个看各自的需求了。

  后面有一个很重要的选择。 选择在AVG游戏中是非常重要的,因为不同的选择,意味着不同的剧情和不同结局。

  我在这里才用了menu select(choose)<2>指令。

  choose在这里是一个变量,用于记录你的选择ID而<2>则是选择的数量,由于我的脚本是逐行解析运行,所以这里定义出选择的数量会比较的方便。 后面则是选择框的大小了。

  menu end 用于选择定义的结束。

  然后就是if语句了,通过if 判断 choose选择项,从而通向不同的脚本。

  这只是简单的方式,如果是自定义的命令脚本,并一次将所有的脚本进行解析的话,其实可以在脚本内部进行跳转,只不过我觉得那样看起来会比较乱(类似C++中的goto...);

  下面的是1.mg和2.mg脚本。由于我的只是示例所以脚本并未命令,通常用数字做命令到后面会非常乱,并不建议。

1.mg

浅谈AVG游戏中的脚本_第3张图片


2.mg

浅谈AVG游戏中的脚本_第4张图片


  大家可以看到,通过不同的选择,一个去了咖啡厅,一个去了公园。这也是AVG游戏中常见的套路。

  其实还会有音效effect, 天气等的指令,在这里不一一列举出来。都是举一反三的。

  很多人不了解AVG游戏的运作,最主要的是很少有人愿意把自己游戏的脚本拿出来共享。

  我相信大家通过这样的脚本,也能大致的开发自己的AVG游戏了。



  转载请注明出处:http://blog.csdn.net/ml3947


  下面是一些截图:

  

  主菜单,这里其实是有飘樱花的动画的。

  浅谈AVG游戏中的脚本_第5张图片


  show_text的脚本的部分:

  浅谈AVG游戏中的脚本_第6张图片


  浅谈AVG游戏中的脚本_第7张图片


  浅谈AVG游戏中的脚本_第8张图片


  选择菜单部分:

  浅谈AVG游戏中的脚本_第9张图片


-------------------------------------------------------------------

  当时的游戏引擎WingEngine会在以后的文章中进行介绍。虽然微软很多年没有更新XNA了,但是因为有一个开源的项目MonoGame,我的代码可以无缝的移植过去,并运行成功了。

  可能会在以后继续介绍一下。

  同时本人也正在使用Cocos2d-x开发一款传统的RPG游戏,目前已经完成了战斗系统部分,正在编写脚本部分和任务系统。

-------------------------------------------------------------------  

 

你可能感兴趣的:(脚本)