写得比较简陋,仅实现了对白,头像功能这两个核心功能
系统主要包括决本的制定和后台代码的编写。
首先是脚本方面
脚本:
这里我用的是xml,本来想用lua的,想想xml的操作我还不熟悉还是先弄xml
代码如下:

解释一下:
}}头像处理{{
<action type="loadFace" pos="left">yihu</action>
type属性指这条脚本的类型,loadFace是加载头像的意思,另外一个值dialog是对白
pos属性指头像在何方,可选left或right
type="loadFace"下,<action></action>之间值代表加载谁的头像。
<action type="removeFace">luqiya</action>与上面相对,是移除头像的意思。
}}对话处理{{
<action type="dialog" name="露琪亚">一户,现在可是紧急状况啊。</action><!--对白-->
name属性指谁说的
type="dialog"下,<action></action>之间值代表说话的内容。
脚本就是这样简单
后台:
后台主要的功能读取脚本,然后根据脚本内容执行相应操作。
全局变量:juqingStep,totalStep
用来判断在情节dialog下有多少条action,用以判断脚本操作何时结束,剧情是否完毕。
//初始化工作
private function juqingHandleInc(){
//这里主要有两个操作
//1是读取相关情节的action数量,并赋给totalStep
//2是调用loadJuqing(enemyLevel:uint),这里enemyLevel是指执行第几段剧情
}
//读取脚本并执行相应操作
private function loadJuqing(enemyLevel:uint){
//这里主要有三个操作
//1是判断当前juqingStep是否>=totalStep,是的话就return退出
//2 读取一条脚本,juqingStep++; 判断脚本类型
//3 根据脚本类型执行操作。如果是无需等待用户响应的操作,如loadFace,则执行loadFace(name:String,dir:String):加载头像,然后调用loadJuqing(enemyLevel:uint)读取下一条脚本。如果是需要等待用户响应的操作,如dialog(用户看完对白要按鼠标才到下一条),则只显示对白内容,在外面写监听语句,等用户点击鼠标后才执行loadJuqing(enemyLevel:uint)读取下一条脚本
}
//加载头像
public function loadFace(name:String,dir:String):void{
}
//移除头像
public function removeFace(name:String):void{
}
//监听用户操作,如用户鼠标点击对白内容时,执行loadJuqing(enemyLevel:uint)读取下一条脚本。不同语言处理方法差异较大我就不写了
效果:

虽然十分简单,但也足够我目前的一个小游戏了
449




被折叠的 条评论
为什么被折叠?



