为了证明小弟最近 不是什么都没干,为了某位网友的呼唤,也为了表白在下确实正艰苦卓绝的构建着 文档及代码, LGame文档及0.2.8版,已决定于9月15日正式发布, 以下是一些相关信息。 LGame-0.2.8 版包结构如下 自 0.2.8 版起, LGame 中新增了 AVGScreen 类
为了证明小弟最近 不是什么都没干,为了某位网友的呼唤,也为了表白在下确实正艰苦卓绝的构建着 文档及代码, LGame文档及0.2.8版,已决定于9月15日正式发布, 以下是一些相关信息。
————————————————————————————————
LGame-0.2.8 版包结构如下
自 0.2.8 版起, LGame 中新增了 AVGScreen 类,以方便用户快速制作 AVG 类型游戏(当然, H Game 也可以的说……),或以此实现比较绚丽的动漫过场以及动漫交互效果 ( 没错,以后作贪食蛇都可以加 AVG 过场了 ) 。
以下本次更新后将会出现的,LGmae-0.2.8 AVGScreen中默认的脚本命令。
PS : LGame 中脚本命令不区分大小写。
脚本命令
命令说明
Include
作用:
在当前脚本中载入另外一个脚本的内容,当导入脚本结束时将继续读取当前脚本。
写法:
Include res/myscript.txt
If …… else …… endif
作用:
分支判断脚本流程。
写法:
if a>b
XXXX
else if a==b
XXXX
else
XXXX
endif
begin …… end
作用:
此命令用以构造一组脚本,但不立即执行,仅在调用 call 命令时才能触发此命令内部的脚本。
写法:
Begin showMessage
Mescolor red
Mes 孔曰成仁,孟曰取义。
XXXXX
End
Call
作用:
此命令用以调用指定的命令段,需要和 begin …… end 命令配合使用。
写法:
Call showMessage
此时 showMessage 命令段将被执行。
In …… out
作用:
这是一组从输入到 输出的命令,在两组命令之间的字符串数据将被以选择框形式展现给用户。
写法:
In
A. 景德镇瓷器
B. 景德镇戏剧
C. 景德镇餐具
Out
select
作用:
为选择框加上标题,如果 select 命令为空,则 in …… out 命令 输出的选择框将只有选项,而没有标题。
写法:
Select 景德镇盛产什么?
In
A. 景德镇瓷器
B. 景德镇戏剧
C. 景德镇餐具
Out
selleft
作用:
设定选择框文字在显示时距离选择框左侧的偏移距离,用以调节文字位置。
写法:
seleft 10
seltop
作用:
设定选择框文字在显示时距离选择框顶端的偏移距离,用以调节文字位置。
写法:
Seltop 10
mes
作用:
显示一组对话,用以令游戏角色向用户传递信息。
写法:
1 、单纯显示
Mes 吃了吗?没吃?!……没吃回家吃去吧。
2 、强制换行
Mes 吃了吗? /n 没吃?!…… /n 没吃回家吃去吧。
3 、转换指定范围内文字颜色
Mes 吃了吗 /> ? /n 没吃?!…… /n 没吃回家吃去吧。 (r 为红, w 为白, b 为黑, o 为橘黄 )
meslen
作用:
规定 mes 命令在显示对话时每行最多的显示字数,超过将自动换行(不填时以系统判断的默认行数执行)。
写法:
Meslen 20
mescolor
作用:
规定 mes 命令在显示对话时文字的默认颜色。
写法:
Mescolor yellow
mestop
作用:
规定 mes 命令在显示时距离消息框上方的距离,用以调节文字位置。
写法:
Mestop 10
mesleft
作用:
规定 mes 命令在显示时距离消息框左边框的距离,用以调节文字位置。
写法:
Mesleft 10
messtop
作用:
关闭当前画面上的消息框或选择框。
写法:
messtop
gb
作用:
显示指定的背景画面。
写法:
gb res/background.png
cg
作用:
显示指定的角色画面。
写法:
1、 单纯显示
cg res/role.png
2、 显示在指定位置
cg res/role.png 50 50
3、 替换当前 cg
cg res/role.png to res/role1.png
4、 删除指定 cg
cg del res/role.png (ps: 只填写 cg del 则删除全部 cg)
sleep
作用:
令画面延迟指定时间,此段时间内画面将无响应。
写法:
Sleep 1000
flash
作用:
令画面以指定颜色闪烁。
写法:
Flash 200,125,200
cgwait
作用:
暂停当前画面,当点击时继续运行。
写法:
Cgwait
Fadein
作用:
以指定颜色进行屏幕淡入。
写法:
Fadein black
Fadeout
作用:
以指定颜色进行屏幕淡出。
写法:
Fadeout black
shake
作用 ;
让画面产生模拟震荡。
写法:
Shake 30
play
作用:
播放指定音乐。
写法:
Paly res/m1.wav
playloop
作用:
循环播放指定音乐。
写法:
Play res/m1.wav
playstop
作用:
停止音乐的播放。
写法:
Playstop 0 (0 为音乐索引号,按照添加顺序累加,直接 playstop 将停止所有音乐的播放 )
petal
作用:
画面呈现樱花飞舞效果。
写法:
Petal( 停止为 petalstop)
snow
作用:
画面呈现银装素裹效果。
写法:
Snow( 停止为 snowstop)
rain
作用:
画面呈现落雨纷纷效果。
写法:
Rain (停止为 rainstop )
set
作用:
预定义脚本变量。脚本变量也可在 AVGScreen 中通过 Command 类设置,也多用于 AVGScreen 与脚本交互,或者定义需要重复使用的数据信息。
写法:
set var = [res/background.png]
set var1 = 100
作用:
将脚本中的预定义变量内容于指定位置显示出来。
写法:
1 、 set var = [res/background.png]
mes print(var)
2 、 set var =7
If var == 7
XXXX
else
XXXX
endif
3 、 set var=10/2*36-7
reset
作用:
清空脚本中一切缓存,此时所有预订义变量都将不复存在。
写法:
Reset
//,#.’
作用:
以上三者为行注释符号,自该符号起一整行数据将不被脚本读取。
写法:
//XXXX
#XXXX
‘XXXX
/**/
作用:
区域注释符号,自 /* 起,直到 */ 结束的所有数据将不被脚本读取。
写法:
/*
XXXXXXXXX
XXXXX
XXX
*/
exit
作用:
离开 AVGScreen 窗体。当执行此命令时脚本将被强制终止,并执行 onExit 函数,多用于转换 Screen 。
写法:
exit
说到这里,其实我们可以看出 LGame 默认给出的脚本功能非常有限(相对专业 AVG 引擎而言),只包含了最基础的 AVG 功能。
但是,那并不重要,因为 LGame 是一款通用(万能)的游戏开发框架,只要 LGame 将相关修改权限交给游戏开发者,游戏开发者就完全可以通过 LGame 组件对 AVGScreen 扩充出任何您所需要的功能。
下列是一个继承自 AVGScreen 的窗体:
public class AVGScript extends AVGScreen { /** * 使用指定脚本,指定路径中图片为对话框 * * @param initscript * @param initdialog */ public AVGScript(String initscript, String initdialog) { super(initscript, initdialog); } /** * 使用指定脚本,指定对话框图片 * * @param initscript * @param img */ public AVGScript(String initscript, Image img) { super(initscript, img); } /** * 使用指定脚本,默认对话框 * * @param initscript */ public AVGScript(String initscript) { super(initscript); } /** * AVG底层绘图接口,允许直接在此绘制您所需要的画面(即使不使用底层绘图, 您也可以通过add方式增加组件或精灵到指定位置) */ public void drawScreen(LGraphics g) { } /** * 仅在初始化时起作用,设定脚本命令参数,可于此处预设游戏中变量供脚本读取 */ public void initCommandConfig(Command command) { } /** * 仅在初始化时起作用,设定信息框参数,不填此项时,对应组件默认置于屏幕下方,自适应信息框图片 */ public void initMessageConfig(LMessage message) { } /** * 仅在初始化时起作用,设定选择框参数,不填此项时,对应组件默认置于屏幕下方,自适应选择框图片 */ public void initSelectConfig(LSelect select) { } /** * 当执行AVG脚本时触发此项,message中数据为脚本信息,若返回false, 则当前脚本将被此函数截取(此时默认解释器无效),用户可以自行解析 * 该行脚本数据。 */ public boolean nextScript(String message) { return true; } /** * 当画面中出现选择项,并且选中时触发此函数,message中数据为[select]命令信息,type为选中的选择项,索引由0开始 */ public void onSelect(String message, int type) { } /** * 当脚本执行[exit]命令时将调用此参数,可在此执行setScreen之类命令离开AVG窗体 */ public void onExit() { } }
值得说明的是,即便什么都不再实现,继承自 AVGScreen 的窗体也可以起到解释并执行指定脚本的作用。另外 J2SE 版与 Android 版更新内容完全相同,故不再赘述。
事实上, AVGScreen 的操作使用非常之简便,只要结合 LGame 现有的强大组件与精灵支持,就算要制作出传说级的 AVG (或 galgame ),也只是轻而易举的事情罢了(当然,大前提是有美工支持,或者套用其它游戏图片……)。
再者,虽然 AVG 类游戏制作非常简单,某些类型的 AVG 游戏甚至非常卖座(比如月姬、圣杯战争、初音岛之类以及很多纯 H 的),但在 Android 上的 AVG 游戏却非常罕见,这给无论是原创或移植游戏都留下了巨大的商机。
另外 0.2.8 中也修正了所有大家反馈回来的 Bug (这次改版后应该没有特别明显的 Bug 存在了),并针对精灵类作了优化,修正了一些耗时的算法,同时为 LGame 的标准精类(不是仿 j2me 的那个)添加了自由旋转以及色彩过滤功能,并且增加了一些画面特效,具体留待正式发布时再详细说明。
小弟本周六、日两天准备死磕文档,没有发生人力不可抗拒之意外的话(诸如停电、受伤、其它项目赶工、硬盘崩溃、乃至海啸、地震、战争、外星人入侵、小弟蒙主召唤等等),文档以及 LGame-0.2.8 会在 2010 年 9 月 15 日晚 准时发布,不见不散。
查看更多关于LGame文档及0.2.8版发布预告的详细内容...