avg是java关键字_浅谈AVG游戏中的脚本
最近因为笔记本数据丢失,翻网盘的时候找到了大学时候写的基于XNA的2D游戏引擎的代码,和为这个引擎写的使用示例。
其中比较大点的示例就是一个ACT游戏,一个AVG游戏和一个A*寻径算法。
因为当时的AVG游戏的脚本没有加密,就拿出来了看了一下。
谈到脚本,我想大家都不陌生,通过简易快速和可扩展性俘获大家的脚本语言比比皆是。
之前在百度博客的时候,就有很多人问道过AVG游戏的脚本。
其实AVG游戏的脚本,就是比较简单的逐行运行的脚本,大多数时候,都可以自己简单的定义一下脚本命令然后自己进行解析执行。
下面给大家看看我之前的AVG游戏的脚本。
最开始是几个set命令。前面是名称,后面其实是相应的资源的代号。使用中文进行set,可以在后面写脚本时更能清楚的使用。
audio_start就是播放音乐的指令,后面的音乐代号其实也可以在开头用set进行中文化,不过由于音乐的数量并不多,在这里就直接播放了。
show_text 就是显示文本后面有文本内容, 使用的字体的代号,以及显示的位置。后面的游戏截图会显示的。
disapp_all_text就是将之前显示的文本都消失。
fadein back(家) 就是家的背景渐变显示出来。
同理,fadeout back。就是将背景渐变的消失。
string xxxxx。 也就是AVG游戏中的逐字显示文本了,通常是独白。
name xx string xxx。 就是AVG游戏中某个人物说话了。 前面是人物名称。
下面看看后面的脚本:
wait指令,其实是不进行的操作的,就是延迟一条脚本。这个看各自的需求了。
后面有一个很重要的选择。 选择在AVG游戏中是非常重要的,因为不同的选择,意味着不同的剧情和不同结局。
我在这里才用了menu select(choose)<2>指令。
choose在这里是一个变量,用于记录你的选择ID而<2>则是选择的数量,由于我的脚本是逐行解析运行,所以这里定义出选择的数量会比较的方便。 后面则是选择框的大小了。
menu end 用于选择定义的结束。
然后就是if语句了,通过if 判断 choose选择项,从而通向不同的脚本。
这只是简单的方式,如果是自定义的命令脚本,并一次将所有的脚本进行解析的话,其实可以在脚本内部进行跳转,只不过我觉得那样看起来会比较乱(类似C++中的goto...);
下面的是1.mg和2.mg脚本。由于我的只是示例所以脚本并未命令,通常用数字做命令到后面会非常乱,并不建议。
1.mg
2.mg
大家可以看到,通过不同的选择,一个去了咖啡厅,一个去了公园。这也是AVG游戏中常见的套路。
其实还会有音效effect, 天气等的指令,在这里不一一列举出来。都是举一反三的。
很多人不了解AVG游戏的运作,最主要的是很少有人愿意把自己游戏的脚本拿出来共享。
我相信大家通过这样的脚本,也能大致的开发自己的AVG游戏了。
下面是一些截图:
主菜单,这里其实是有飘樱花的动画的。
show_text的脚本的部分:
选择菜单部分:
-------------------------------------------------------------------
当时的游戏引擎WingEngine会在以后的文章中进行介绍。虽然微软很多年没有更新XNA了,但是因为有一个开源的项目MonoGame,我的代码可以无缝的移植过去,并运行成功了。
可能会在以后继续介绍一下。
同时本人也正在使用Cocos2d-x开发一款传统的RPG游戏,目前已经完成了战斗系统部分,正在编写脚本部分和任务系统。
-------------------------------------------------------------------
avg是java关键字_浅谈AVG游戏中的脚本相关推荐
- java扫码枪键盘_浅谈在react中如何实现扫码枪输入
触发原理 原理就是监听键盘输入,比如扫一个为6970596130126的69条形码,用扫码枪扫一下会在光标位置依次输出: 6 9 7 0 5 9 6 1 3 0 2 6 但这不是完整的,所以需要写一个 ...
- java 定时任务怎么关闭_浅谈springboot项目中定时任务如何优雅退出
在一个springboot项目中需要跑定时任务处理批数据时,突然有个Kill命令或者一个Ctrl+C的命令,此时我们需要当批数据处理完毕后才允许定时任务关闭,也就是当定时任务结束时才允许Kill命令生 ...
- mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- mysql存储过程set什么意思_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- python中if和elif的区别_浅谈对python中if、elif、else的误解
今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...
- python中分支语句elif与else的区别_浅谈对python中if、elif、else的误解
今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...
- java中virtual关键字_浅谈virtual、abstract方法和静态方法、静态变量理解
说点对这几个容易混淆的词的理解: 1.c++中的virtual方法的 virtual关键字主要是防止继承中重复继承父类的同一个方法而设置的标识. 2.virtual与abstract关键字的不同之处在 ...
- scale和java比较_浅谈java中BigDecimal的equals与compareTo的区别
这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较出现错误(比如3.0与3.00的比较等). [注:以下所讲都 ...
- java 小偷_浅谈小偷程序之Java
浅谈小偷程序之Java 题外话:如果用EditPlus作为编辑器的话如果保存的格式默认为unicode的话那么在里面写中文用resin作为应用服务器的话就可能出现报500 Servlet错误哦!主要是 ...
最新文章
- 一文读懂生成对抗网络GANs(附学习资源)
- .Net桌面程序的旗舰--参加亚控科技组态王7.0发布有感
- 《javascript设计模式》笔记之第七章:工厂模式
- 莫烦python简历_Matplotlib画图教程
- ubuntu pycharm设置快捷图标_这些Ubuntu中的小技巧,你知道吗?
- Jedis与Redisson对比有什么优缺点?
- jquery getjson php,jquery中调用php json函数的方法分享
- 4.1 编程语言的几个发展阶段
- VB.Net实现Ftp上传的方法
- 计算机网络习题——循环冗余校验
- 微信群二维码活码生成源码
- 黑马程序员——多态和抽象类的相关知识
- 为谷歌浏览器Chrome创建多个用户
- Jetty9开发(1)
- ZZ 自制低成本3D激光扫描测距仪(3D激光雷达),第二部分
- 失落的帝国:盛大业务大收缩
- 计算机入门可以做什么工作,如何上好计算机入门课
- 抽象类,多态与鸭子类型
- oracle库函数,Oracle:函数目录
- GOOGLE HACKING 系列文章
热门文章
- ubuntu20.4服务器搭建ftp并连接(阿里云服务器)
- 如何批量采集饿了么外卖商家信息
- 一个整数N除以2余1,除以3余2,除以4余3,...,除以10余9,但除以11余0,计算符合该条件的最小整数
- 使用挤压、哈哈镜、扭曲进行文字图像增强
- 手提计算机键盘中的除法,手提电脑除法是哪个键
- 创新模式存争议、资质审核不负责,BOSS直聘IPO道阻且长?
- 网页设计用什么软件最好
- 基于CBO的执行计划简介
- 网络流量分析软件 mysql_网络流量监测图形分析工具 Cacti
- QT + C++《QlistWidget 的基本运用》