※本篇为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,可以看到我们已经给游戏添加了一张背景。
上面显示图片的代码,如果将透明度改为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从屏幕左边出现,移到了屏幕中间。
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,来看一下
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);它是单纯的让游戏暂停,等待其他脚本指令,看看运行结果。
下面还加入了一些其他的简单的剧情,基本上都是用的上面所说的代码,需要提的是Layer.clear(-);,表示清除层上的所有对象,参数为(层)大家可以下载demo看一下代码
LVG游戏的制作,就讲到这里,下一贴,详细讲解一下如何用LegendForFlashProgramming来制作SLG游戏。
四,DEMO下载。
http://legend-demo.googlecode.com/files/LVG0.1.rar
分享到:
相关推荐
lvg:狮子矢量图形
2个P沟道,-30V,-7A,RDS(ON),35mΩ@10V,48mΩ@4.5V,20Vgs(±V);-1.5Vth(V);SOP8
BoulevardCulb.6j450v8phv.gaI7lvg
LittlevGL_GUI_C,C++GUI_LittleVGL中文_LittleVGL翻译_lvgl中文手册_源码.zip
Linux逻辑卷管理(LVM).rar
Open SwitchPlate本质上是一种小型触摸屏设备,您可以将其安装在墙壁上以代替开关,并且可以使用json设计其自定义用户界面。 您可以构建自己的硬件,也可以购买现成的硬件。 欢迎捐款! 如果您想为此做出贡献,请...
此自定义组件简化了同步使用Home Assistant实体对象。 安装 使用选择的工具打开HA配置的目录(文件夹)(在其中找到configuration.yaml )。 如果那里没有custom_components目录(文件夹),则需要创建它。 在...
使用 pm2 或者 nodemon 启动 dataWriteSystem 相关服务 使用 pm2 或者 nodemon 启动主服务 *注意 本系统仅供学习所用,不可出售作为商用等,最终解释权归本人所有。 备注 代码中含有本人相关平台秘钥、口令等,已经...
批量快速将多张bmp图片转换为bin文件,bmp图片位深度为24bit,bin文件可选择8bit(RGB323)、16bit(RGB565)、24...还有每张图片的枚举索引,图片文件名跟随在索引后,提供快速图像化处理,极大方便用单片机来做图形界面。
运用CFD方法,模拟计算了在反应堆棒状燃料元件包壳表面加装纵向涡产生器(LVG)后,燃料棒、气隙、包壳和冷却剂的温度场和冷却剂的流常计算时采用分块结构网格对带LVG的计算区域划分网格,使用SSTk
Powerful building blocks: buttons, charts, lists, sliders, images, etc. Advanced graphics: animations, anti-aliasing, opacity, smooth scrolling Use various input devices: touchscreen, mouse, keyboard,...