如何用LegendForFlashProgramming来制作LVG游戏

※本篇为LegendForFlashProgramming脚本引擎的使用教程第一篇。

一,关于LegendForFlashProgramming脚本引擎
http://blog.csdn.net/lufy_legend/article/details/6889424


二,准备工作

本次用LegendForFlashProgramming0.1来制作,你需要SanguojiForPC.swf文件,你可以到这里下载三国记黄巾之乱,使用里面的SanguojiForPC.swf,或者一会下载本教程的demo。

接下来准备一些图片,自己背景和人物等等。

三,开始制作LVG游戏。

1,首先建立一个文件夹hellow,然后将SanguojiForPC.swf放到文件夹里面。

2,在hellow文件夹里面建立一个script文件夹,在script文件夹下建一个文本文件MainSLG.lf。

3,在SanguojiForPC.swf同目录下,建一个images文件夹,准备一张背景图片back01.png放到里面。

4,然后在MainSLG.lf里添加:

//添加一个back层

Layer.add(-,back,0,0);

//读取图片文件,取名backdata

Load.img(backdata,images/back01.png);

//将图片数据backdata以backimg的名字,添加到back层上。

//参数分别是(层,图片名,图片数据名,坐标x,坐标y,长,高,透明度)。

Img.add(back,backimg,backdata,0,0,800,480,1);

打开SanguojiForPC.swf,可以看到我们已经给游戏添加了一张背景。

如何用LegendForFlashProgramming来制作LVG游戏_第1张图片

上面显示图片的代码,如果将透明度改为0,然后加上

Img.transition(backimg,fadeIn,0.1);

背景图片就会由透明缓慢显示出来,你可以试验一下。

5,在images文件夹里放入一张图片boy.png,然后在MainSLG.lf里添加:

//添加一个chara层

Layer.add(-,chara,0,0);

//读取图片文件,取名charadata

Load.img(charadata,data/images/boy.png);

//将图片数据charadata以chara01的名字,添加到chara层上,注意坐标我设为了-100,把图片放到了屏幕外面。

Img.add(chara,chara01,charadata,-100,150);

//移动图片到相应的位置

//参数分别是(图片名,目标坐标x,目标坐标y,移动速度)。

Img.moveTo(chara01,150,150,10);

运行SanguojiForPC.swf,可以看到人物boy从屏幕左边出现,移到了屏幕中间。

如何用LegendForFlashProgramming来制作LVG游戏_第2张图片

6,继续添加代码

Layer.add(-,talk,0,0);

Load.img(selectbox,data/images/selectbox.png);

Load.img(selectbtnup,data/images/selectbtnup.png);

Load.img(selectbtnover,data/images/selectbtnover.png);

Img.add(talk,selectbox,selectbox,100,350,405,125,1);

这些我都在前面已经解释了,就不说了,运行一下就可以看到结果,我加入了一个对话框,但是,没有添加任何对话。

7,接下来在对话框里添加对话,添加如下代码。

//添加一个静态文本

Text.label(talk,name01,[ lufy ],120,360,15,#ffffff);

//添加一个动态文本

Text.wind(talk,talk,你好!欢迎来到「legend脚本世界」!我是<spanclass='red'>lufy</span>。为您介绍如何用L#脚本语言来制作游戏。,120,380,380,13,20);

运行SanguojiForPC.swf,来看一下

如何用LegendForFlashProgramming来制作LVG游戏_第3张图片

8,接下来添加如下代码。

//游戏暂停,等待鼠标点击

Wait.click();

//改变talk的文本内容

Text.windChange(talk,首先、先来做一个游戏中比较常用的<spanclass='green'>选择分支</span>吧。);

Wait.time(20);

这里,需要解释的是Wait.click(),它代表等待鼠标点击,就是说,在上一步的对话显示完之后,要等待鼠标点击一下之后,游戏脚本才会继续显示下一步动作,这里就是显示Wait.click()下面的一段对话,Wait.time(20);则表示等待200毫秒。

接下来看对话的显示,我用了Text.windChange(),因为文本是之前已经显示到屏幕上的,我要改变它,有两种方法,一种就是我先把原来的文本删除,然后添加一个新的文本,另一种就是我现在用的这种,直接改变它的内容。

9,接下来添加选择分支。

//添加对话

Text.windChange(talk,你是<spanclass='blue'>男性</span>还是<spanclass='red'>女性</span>?);

//在talk层上添加一个select层

Layer.add(talk,select,120,400);

//添加两个按钮

//参数(层,按钮名,按钮文字,坐标x,坐标y,按钮mouseup图片,按钮mouseover图片,按钮mousedown图片,文字颜色)

Button.add(select,btn01,男性,0,10,selectbtnup,selectbtnover,selectbtnover,#ffffff);

Button.add(select,btn02,女性,0,40,selectbtnup,selectbtnover,selectbtnover,#ffffff);

//添加两个方法

function btn01click();

//移除select层

Layer.remove(select);

//设定变量yousex等于男性

Var.set(yousex,男性);

Text.windChange(talk,你选择了<span class='blue'>男性</span>!);

endfunction;

function btn02click();

Layer.remove(select);

//设定变量yousex等于女性

Var.set(yousex,女性);

Text.windChange(talk,你选择了<span class='red'>女性</span>!);

endfunction;

//添加按钮事件

//点击按钮btn01调用方法btn01click,点击按钮btn02则调用方法btn01click

Button.mousedown(btn01,btn01click);

Button.mousedown(btn02,btn02click);

//游戏暂停

Wait.ctrl(0);

//等待点击

Wait.click();

Text.windChange(talk,你是<spanclass='yellow'>30岁</span>以上吗?);

Layer.add(talk,select,120,400);

Button.add(select,btn01,30岁以上,0,10,selectbtnup,selectbtnover,selectbtnover,#ffffff);

Button.add(select,btn02,30岁以下,0,40,selectbtnup,selectbtnover,selectbtnover,#ffffff);

function btn01click();

Layer.remove(select);

Var.set(youage,30岁以上);

Text.windChange(talk,你的年龄在30岁以上!);

endfunction;

function btn02click();

Layer.remove(select);

Var.set(youage,30岁以下);

Text.windChange(talk,你的年龄在30岁以下!);

endfunction;

Button.mousedown(btn01,btn01click);

Button.mousedown(btn02,btn02click);

Wait.ctrl(0);

Wait.click();

//变量使用举例

Text.windChange(talk,原来你是@youage的@yousex!);

上面的代码,涉及到了按钮的添加,和按钮事件的添加,以及变量的使用方法,我都在关键地方加上了注释,需要说明的是Wait.ctrl(0);它是单纯的让游戏暂停,等待其他脚本指令,看看运行结果。

如何用LegendForFlashProgramming来制作LVG游戏_第4张图片

下面还加入了一些其他的简单的剧情,基本上都是用的上面所说的代码,需要提的是Layer.clear(-);,表示清除层上的所有对象,参数为(层)大家可以下载demo看一下代码

如何用LegendForFlashProgramming来制作LVG游戏_第5张图片

LVG游戏的制作,就讲到这里,下一贴,详细讲解一下如何用LegendForFlashProgramming来制作SLG游戏。

四,DEMO下载。

http://legend-demo.googlecode.com/files/LVG0.1.rar


你可能感兴趣的:(programming)