|  |  |  
 | 
  组别 |   校尉 |  
  级别 |   裨将军 |  
  功绩 |   13 |  
  帖子 |   310 |  
  编号 |   347822 |  
  注册 |   2009-11-21 |  
 
 |  |  
 |  |  |  
 |  
 
  
 | 
| 
 |  
flash脚本引擎LegendForFlashProgramming0.1版发布
  
一,LegendForFlashProgramming脚本引擎是什么? 
它是一个用ActionScript3.0开发的游戏脚本引擎,游戏里的所有元素都可以由脚本语言来控制,它可以轻松制作一款SLG游戏,即使你完全不会写程序,从而降低了游戏开发的难度。 
二,该引擎可以制作什么样的游戏? 
0.1版本可以制作一款LVG游戏,或者一款小型SLG游戏(类似三国志曹操传系列),计划在之后的版本中会陆续支持大型SLG游戏的开发(类似三国志系列),RPG游戏及MMO-RPG游戏的开发,以及其他新的功能。 
三,为什么是0.1版,而不是1.0版? 
目前版本虽然能够自由制作一款战棋游戏,但是有些地方还不够便利,比如: 
1,目前游戏中的图片,除了地图之外,添加和修改得时候,需要借助FlashProfessional CS系列工具,所以,准备在1.0版本中,改变图片存储形式,提供游戏的图片修改器。 
2,游戏中的策略,特技等还不够全,准备在1.0版本中添加大量的策略和武将特技等。 
基于以上原因,本次先发布0.1版,以后有机会的话,准备提供专门的游戏剧本编辑器。 
四,该引擎作品案例 
三国记黄巾之乱 
http://blog.csdn.net/lufy_legend/article/details/6889261 
http://www.xycq.net/forum/thread-241379-1-1.html 
  
  
 
五,引擎脚本语法 
该引擎使用L#脚本语言0.1版(专门为该引擎而设计的脚本语言),L#脚本语言随引擎更新而更新,下面是该脚本的语法说明,你不需要全看懂,更不用全记住(其实我列出的也不一定全),真正制作游戏的时候,不一定全都用到,如何用该脚本来制作游戏,会另外提供详细的教程,用到的时候再详细了解即可。 
 
L#脚本文法 
一,代码注释 
在L#语法中,用“//”可以注释一行代码,用“/**/”可以注释多行代码。 
例如下面的代码,只有第一行有效: 
Button.add(-,btnstart,游戏开始,280,270,btnup,btnover,btnover,#ffffff); 
//Button.add(-,btnload,读取进度,280,310,btnup,btnover,btnover,#ffffff); 
/* 
Button.add(-,btnset,环境设定,280,350,btnup,btnover,btnover,#ffffff); 
Button.add(-,btnbuy,合作伙伴,280,390,btnup,btnover,btnover,#ffffff); 
Button.add(-,btnover,关闭游戏,280,430,btnup,btnover,btnover,#ffffff); 
*/ 
二,  变量操作 
1,变量赋值 
Var.set(name,value); 
参数:变量名,值 
例:Var.set(n1,100); Var.set(n2,"abc");Var.set(n2,abc); 
注意,在L#中,字符串"abc"和abc,其实是不相等的 
2,变量使用 
@+变量名 
例:if(@test==0); 
  
三,条件语句if 
if语句以if开头,以endif结束,每一个分句用";"结束 
例: 
if(@test==0); 
Var.set(backWidth,100); 
elseif(@test==1); 
Var.set(backWidth,400); 
else; 
Var.set(backWidth,700); 
endif; 
说明:如果变量test等于0,则变量backWidth等于100,如果变量test等于1,则变量backWidth等于400,否则变量backWidth等于700 
四,goto语句 
1,定义Mark.married;(married是任意自定义名称) 
2,Mark.goto(married);可以跳转到定义的位置 
参数:自定义名称的位置 
五,Load:文件Load类,用来读取文件和图片 
1,Load.script(path); 
载入脚本文件 
参数:脚本文件路径,例:data/script/Main.lf 
2,Load.img(name,path); 
载入图片 
参数:载入图片文件后的数据名,图片路径 
六,function:添加方法,以endfunction;结束,格式如下 
function btn01click(); 
           Text.windChange(talk,30歳以上の方ですね!); 
           Layer.remove(select); 
endfunction; 
七,Call:调用方法 
Call.btn01click(); 
八,Wait:游戏暂停,进入等待 
1,  Wait. click(); 
等待鼠标点击 
2,  Wait.time(30); 
等待30*10毫秒。 
九,Layer:操作层 
1,Layer.add(-,name,0,0); 
添加层 
参数:层名(如果是-,则添加到基层上),添加层名,添加层坐标 
2,Layer.remove(name); 
移除层 
参数:移除层名 
3,Layer.clear(name); 
移除该层上的所有子元件 
参数:移除层名 
4,Layer.clear(name); 
移除该层上的所有子元件 
参数:移除层名 
5,改变透明度 
Layer.transition(name,fadeIn,0.1); 
参数:层名,类型,速度 
Layer.transition(name,fadeOut,0.1); 
参数:层名,类型,速度 
Layer.transition(name,fadeTo,0.1,0.5); 
参数:层名,类型,目标透明度,速度 
十,Img:图片操作类 
1,  Img.add (-,logoimg,logo,0,0,800,480,1); 
显示一张图片 
参数:所在层,图片名,图片数据名,坐标x,坐标y,宽,高,透明度 
2,  Img.changeData(backimg,backdata01); 
改变图片数据 
参数:图片名,图片数据名 
3,  Img.remove(img); 
移除图片 
参数:图片名 
4,  Img.moveTo(gril,400,150,10); 
移除图片 
参数:图片名,移动目的地x,移动目的地y,移动速度 
5,  改变透明度 
Layer.transition(name,fadeIn,0.1); 
参数:层名,类型,速度 
Layer.transition(name,fadeOut,0.1); 
参数:层名,类型,速度 
Layer.transition(name,fadeTo,0.1,0.5); 
参数:层名,类型,目标透明度,速度 
十一,     Button:按钮操作类 
1,  Button.add(select,btn01,男性,0,10,selectbtnup,selectbtnover,selectbtnover,#ffffff); 
添加一个按钮 
参数:所在层,按钮名,按钮文字,按钮图片up状态,按钮图片over状态,按钮图片down状态,按钮文字颜色 
2,  Button.remove(btn01); 
移除图片 
参数:图片名 
3,  Button.mousedown(btn01,btn01click); 
添加按钮MOUSE_DOWN事件 
参数:按钮名,方法名 
4,  Button.mouseup(btn01,btn01click); 
添加按钮MOUSE_UP事件 
参数:按钮名,方法名 
5,  Button.mouseover(btn01,btn01click); 
添加按钮MOUSE_OVER事件 
参数:按钮名,方法名 
6,  Button.mouseout(btn01,btn01click); 
添加按钮MOUSE_OUT事件 
参数:按钮名,方法名 
十二,     Text:文字操作类 
可以直接全部显示,也可以逐字显示文本 
1,  Text.label(talk,name01,[lufy ],120,360,15,#ffffff); 
显示文本 
参数:层名,文本名,文本信息,坐标x,坐标y,字体大小,字体颜色 
2,  Text.labelChange(name01,[??? ],15,#ff0000); 
改变文本信息 
参数:文本名,文本信息,文字大小,文字颜色 
3,  Text.wind(talk,talk,こんにちは!「legendゲーム世界」にようこそ!<spanclass='red'>lufy</span>と申します。これから、L#スクリプトでノベルゲームを作りましょう。,120,380,380,13,20); 
添加文本,逐字显示 
参数:层名,文本名,文本信息,坐标x,坐标y,文本框宽度,字体大小,逐字显示速度 
在逐字显示文本时,可以利用L#中的css来改变个别文字的颜色等,如<span class='red'>lufy</span>表示lufy这个字母显示为红色,其他几种颜色共有red,yellow,green,blue,pink,black 
十三,     还有小型SLG对应的所有脚本,大类约20个,每个类中方法若干,这些会在接下来的SLG教程里面进行详细的介绍。 
  
六,制作Hellow World小程序。 
首先你需要SanguojiForPC.swf文件,你可以下载由此引擎制作的游戏三国记黄巾之乱,使用里面的SanguojiForPC.swf,或者下载此引擎制作的其他的一些DEMO等。 
1,  首先建立一个文件夹hellow,然后将SanguojiForPC.swf放到文件夹里面。 
2,  在hellow文件夹里面建立一个script文件夹,在script文件夹下建一个文本文件MainSLG.lf,这里将扩展名改成了lf,因为LegendForFlashProgramming引擎用的是L#脚本语言,L#脚本文件扩展名为lf。 
3,  用记事本打开MainSLG.lf,在里面添加下面一行代码 
Text.label(-,txt,Hello World !,280,230,30,#000000); 
现在打开SanguojiForPC.swf,应该看到我们熟悉的“Hellow World”了。 
  
 
更多教程,偶再慢慢更新,可以先看偶签名 
 
[ 本帖最后由 lufy 于 2011-10-22 09:53 编辑 ] 
 |  
  
 
 
 |  
| 
 |  
  |