lufylegendRPG 开源引擎 API文档


lufylegendRPG开源引擎API文档

最终更新于2013/06/14

lufylegendRPG是基于lufylegend的HTML5游戏引擎。使用它时, 需要引入lufylegend.js。 包含了LTileMap,LCharacter,LTalk, LEffect等多个实用的类。 由于是基于lufylegend,所以你需要 了解一下lufylegend的用法,这样才能更合理,更快捷地运用 lufylegendRPG进行开发。 该引擎主要封装了lufylegend的一些 基本功能,使该引擎能更快地开发出一款RPG小游戏。 如果你还 没有接触过lufylegend,可以去官方网站下载它,同时结合API文 档学习它。 如果你已经对lufylegend很孰悉了,那就可以直接开 始学习lufylegendRPG。 相信lufylegend和lufylegendRPG能使你更 快地走进HTML5游戏开发的世界。 如果您还没有接触过lufylegend, 请到这里看看吧, 当您了解了lufylegend,运用该引擎才会感到方便。

lufylegendRPG引擎下载

点击这里下载

lufylegendRPG引擎讨论区

点击这里进入讨论区

联系作者

lufylegendRPG 使用流程

■详细介绍:

1,在官方网站上下载lufylegendRPG和lufylegend

2,引入lufylegendRPG和lufylegend

3,通过lufylegend中的init函数初始化引擎

4,开始你的编程之旅

■举例:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>demo</title>
</head>
<body>
<div id="mylegend">loading……</div>
<script type="text/javascript" src="../lufylegend-x.x.x.min.js"></script>
<script type="text/javascript" src="../lufylegendrpg-x.x.x.min.js"></script> 
<script>
init(50,"mylegend",800,480,main);
function main(){
	alert("感谢您使用lufylegendRPG库件,现在你就可以开始你的编程之旅了!");
}
</script>
</body>
</html>

LRPGStage.setShortcuts(value)

■参数:

value: 是否开启快捷键参数

■详细介绍:

用于开启或关闭快捷键,当参数值为true时则打开; 为false则关闭

LRPGStage.closePage()

■详细介绍:

关闭标签页,通常用于关闭游戏

■举例:

LRPGStage.setShortcuts(true);
function main(){
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_DOWN,function(){
		if(LKeyboard.isEsc() == true)LRPGStage.closePage();
	});
}

LRPG

■详细介绍:

LRPGGlobal = LRPG = LRPGStage,使用LRPGStage的地方可以用LRPGGlobal和LRPG来代替使用

LRPGGlobal

■详细介绍:

LRPGGlobal = LRPG = LRPGStage,使用LRPGStage的地方可以用LRPGGlobal和LRPG来代替使用

LKeyboard.isEsc()

■详细介绍:

判断是否按下Esc

※使用该方法要开启快捷键

■举例:

LRPGStage.setShortcuts(true);
function main(){
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_DOWN,function(){
		if(LKeyboard.isEsc() == true)alert("Esc");
	});
}

LKeyboard.isEnter()

■详细介绍:

判断是否按下Enter

※使用该方法要开启快捷键

■举例:

LRPGStage.setShortcuts(true);
function main(){
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_DOWN,function(){
		if(LKeyboard.isEnter() == true)alert("Enter");
	});
}

LKeyboard.isCtrl()

■详细介绍:

判断是否按下Ctrl

※使用该方法要开启快捷键

■举例:

LRPGStage.setShortcuts(true);
function main(){
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_DOWN,function(){
		if(LKeyboard.isCtrl() == true)alert("Ctrl");
	});
}

LKeyboard.isShift()

■详细介绍:

判断是否按下Shift

※使用该方法要开启快捷键

■举例:

LRPGStage.setShortcuts(true);
function main(){
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_DOWN,function(){
		if(LKeyboard.isShift() == true)alert("Shift");
	});
}

LKeyboard.getKeyCode()

■详细介绍:

取出按键的对应值

■举例:

LRPGStage.setShortcuts(true);
function main(){
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_DOWN,function(){
		alert(LKeyboard.getKeyCode());
	});
}

LKeyboard.getKeyName()

■详细介绍:

取出按键的名称

■举例:

LRPGStage.setShortcuts(true);
function main(){
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_DOWN,function(){
		alert(LKeyboard.getKeyName());
	});
}

LTilemap(
    data,
    img,
    width,
    height,
    tdata
)

■详细介绍:

用地图块平铺一张地图

■可用属性:

x:整张地图的x坐标

y:整张地图的y坐标

imgData:地图图片数据

mapData:地图显示数据

partHeight:地图块高度

partWidth:地图块宽度

■参数:

data:地图数组,格式为一个二维数组

img:装有小地图块的一张大图

width:地图块宽度

height:地图块高度

tdata:地形数组,格式为一个二维数组

■举例:

init(50,"mylegend",500,600,main);
var map = [
	[11,10,10,10,11],
	[11,11,10,10,11],
	[10,10,11,11,11],
	[10,10,10,10,11]
];
var mapdata = [
	[1,0,0,0,1],
	[1,1,0,0,1],
	[0,0,1,1,1],
	[0,0,0,0,1]
];
var mapObj = new LTileMap(map,datalist[mapimg],48,48,mapdata);
addChild(mapObj);

setData(data,img,width,height,tdata)

■详细介绍:

重设地图数据

■参数:

data:地图数组,格式为一个二维数组

img:装有小地图块的一张大图

width:地图块宽度

height:地图块高度

tdata:地形数组,格式为一个二维数组

■举例:

init(50,"mylegend",500,600,main);
var map = [
	[11,10,10,10,11],
	[11,11,10,10,11],
	[10,10,11,11,11],
	[10,10,10,10,11]
];
var mapdata = [
	[1,0,0,0,1],
	[1,1,0,0,1],
	[0,0,1,1,1],
	[0,0,0,0,1]
];
var mapObj = new LTileMap();
addChild(mapObj);
function main(){
	mapObj.setData(map,datalist[mapimg],48,48,mapdata);
}

getWidth()

■详细介绍:

取出整张大地图的宽度

■举例:

init(50,"mylegend",500,600,main);
var map = [
	[11,10,10,10,11],
	[11,11,10,10,11],
	[10,10,11,11,11],
	[10,10,10,10,11]
];
var mapdata = [
	[1,0,0,0,1],
	[1,1,0,0,1],
	[0,0,1,1,1],
	[0,0,0,0,1]
];
var mapObj = new LTileMap(map,datalist[mapimg],48,48,mapdata);
addChild(mapObj);
function main(){
	alert(mapObj.getWidth());
}

getHeight()

■详细介绍:

取出整张大地图的高度

■举例:

init(50,"mylegend",500,600,main);
var map = [
	[11,10,10,10,11],
	[11,11,10,10,11],
	[10,10,11,11,11],
	[10,10,10,10,11]
];
var mapdata = [
	[1,0,0,0,1],
	[1,1,0,0,1],
	[0,0,1,1,1],
	[0,0,0,0,1]
];
var mapObj = new LTileMap(map,datalist[mapimg],48,48,mapdata);
addChild(mapObj);
function main(){
	alert(mapObj.getHeight());
}

showData()

■详细介绍:

显示地图数据,并会在地图上标明地形

■举例:

init(50,"mylegend",500,600,main);
var map = [
	[11,10,10,10,11],
	[11,11,10,10,11],
	[10,10,11,11,11],
	[10,10,10,10,11]
];
var mapdata = [
	[1,0,0,0,1],
	[1,1,0,0,1],
	[0,0,1,1,1],
	[0,0,0,0,1]
];
var mapObj = new LTileMap();
addChild(mapObj);
function main(){
	mapObj.showData();
}

LEffect()

■详细介绍:

为RPG场景上添加特殊效果

■举例:

init(50,"mylegend",500,600,main);
function main(){
	var layer = new LSprite();
	addChild(layer);
	layer.graphics.drawRect(5,"dimgray",[0,0,LStage.width,LStage.height],true,"black");
	var effect = new LEffect();
	addChild(effect);
	effect.raining();
}

raining(speed,size)

■参数:

speed:雨点下落的速度

size:雨点的尺寸

■详细介绍:

为RPG场景上添加下雨的效果

■举例:

init(50,"mylegend",500,600,main);
function main(){
	var layer = new LSprite();
	addChild(layer);
	layer.graphics.drawRect(5,"dimgray",[0,0,LStage.width,LStage.height],true,"black");
	var effect = new LEffect();
	addChild(effect);
	effect.raining(50,5);
}

raining(speed,size)

■参数:

speed:雪花下落的速度

size:雪花的半径

■详细介绍:

为RPG场景上添加下雪的效果

■举例:

init(50,"mylegend",500,600,main);
function main(){
	var layer = new LSprite();
	addChild(layer);
	layer.graphics.drawRect(5,"dimgray",[0,0,LStage.width,LStage.height],true,"black");
	var effect = new LEffect();
	addChild(effect);
	effect.snowing(50,2);
}

sleeting(speed,size)

■参数:

speed:雪花和雨点下落的速度

size:为一个数组,形式为[雪花的半径,雨点的尺寸]

■详细介绍:

为RPG场景上添加雨夹雪的效果

■举例:

init(50,"mylegend",500,600,main);
function main(){
	var layer = new LSprite();
	addChild(layer);
	layer.graphics.drawRect(5,"dimgray",[0,0,LStage.width,LStage.height],true,"black");
	var effect = new LEffect();
	addChild(effect);
	effect.sleeting(50,[2,5]);
}

LCurtainSample1(
    speed,
    onClosing,
    onComplete
)

■参数:

speed:幕布合拢的速度

onClosing:当幕布合拢时调用此函数

onComplete:当幕布合拢展开完成时调用此函数

■详细介绍:

用来显示遮屏效果之一

■举例:

init(50,"mylegend",500,600,main);
function main(){
	var curtain = new LCurtainSample1();
	addChild(curtain);
}

LCurtainSample2(
    speed,
    onClosing,
    onComplete
)

■参数:

speed:幕布合拢的速度

onClosing:当幕布合拢时调用此函数

onComplete:当幕布合拢展开完成时调用此函数

■详细介绍:

用来显示遮屏效果之一

■举例:

init(50,"mylegend",500,600,main);
function main(){
	var curtain = new LCurtainSample2();
	addChild(curtain);
}

LCurtainSample3(
    speed,
    onClosing,
    onComplete
)

■参数:

speed:幕布合拢的速度

onClosing:当幕布合拢时调用此函数

onComplete:当幕布合拢展开完成时调用此函数

■详细介绍:

用来显示遮屏效果之一

■举例:

init(50,"mylegend",500,600,main);
function main(){
	var curtain = new LCurtainSample3();
	addChild(curtain);
}

LTalk(content)

■参数:

content:对话内容

■可用属性:

x:对话区x坐标

y:对话区y坐标

talkIndex:对话序号

textWidth:文本区宽度

■详细介绍:

用来显示对话,参数的格式如下

var talkContent = [
	{face:头像素材,name:"人物名称",msg:"对话内容"},
	{face:头像素材,name:"人物名称",msg:"对话内容"}
];

※LTalk构造时所传的对话内容参数是一个数组套JSON的格式,它要在游戏图片加载完成后再初始化,否则显示不出对话头像。

■举例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>LTalk</title>
<script type="text/javascript" src="../lufylegend-1.7.6.min.js"></script>
<script type="text/javascript" src="../lufylegendrpg-1.0.0.js"></script> 
<script>
init(30,"legend",480,320,main);
LRPGStage.setShortcuts(true);
LGlobal.setDebug(true);
var backLayer,loadingLayer,talkLayer;
var talk;
var talkContent;
var talkNum = 0;
var loadData = [
	{name:"yorhom_face",path:"./yorhom.jpg"},
	{name:"lufy_face",path:"./lufy.jpg"}
];
var imglist = [];
function main(){
	//加入进度条
	loadingLayer = new LoadingSample1(); 
	addChild(loadingLayer); 
	//加载图片并显示进度
	LLoadManage.load(
		loadData,
		function(progress){
			loadingLayer.setProgress(progress);
		},
		gameInit
	); 
}
function gameInit(result){
	removeChild(loadingLayer);
	imglist = result;
	//初始化层
	backLayer = new LSprite();
	addChild(backLayer);
	talkLayer = new LSprite();
	backLayer.addChild(talkLayer);
	//加入操作按钮
	addEvent();
	//添加对话内容
	talkContent = [
		{name:"[Yorhom]",msg:"你好,lufy",face:imglist["yorhom_face"]},
		{name:"[lufy]",msg:"你好,yorhom",face:imglist["lufy_face"]},
		{name:"[Yorhom]",msg:"lufylegend最新版本是哪个版本啊?",face:imglist["yorhom_face"]},
		{name:"[lufy]",msg:"……你不知道自己看吗?",face:imglist["lufy_face"]},
		{name:"[Yorhom]",msg:"……说得也是",face:imglist["yorhom_face"]},
	];
	//加入对话
	talkLayer.graphics.drawRect(5,"black",[20,15,400,130],true,"black");
	talkLayer.alpha = 0.8;
	talk = new LTalk(talkContent);
	talkLayer.addChild(talk);
	talkLayer.addEventListener(LMouseEvent.MOUSE_DOWN,say);
	//设置样式
	talk.setNameStyle({x:160,y:40,color:"white",size:12});
	talk.setMsgStyle({x:160,y:70,color:"white",size:10});
	talk.setFaceStyle({x:30,y:30});
	talk.textWidth = 260;
}
function addEvent(){
	LEvent.addEventListener(LGlobal.window,LKeyboardEvent.KEY_UP,say);
}
function say(){
	if(talkNum < talkContent.length){
		//输出对话
		talk.wind(talkNum,function(){talkNum++;});
	}
}
</script>
</head>
<body>
		<div id="legend"></div>
</body>
</html>

setData(content)

■参数:

content:对话内容

■详细介绍:

用来重设对话内容

showData()

■详细介绍:

debug时输出对话内容

※使用时要加入LStage.setDebug(true);

setFaceStyle(style)

■参数:

style:人物头像的样式,格式是一个json对象,如下:{x:头像x坐标,y:头像y坐标}

■详细介绍:

用来设置人物头像的样式

■举例:

var talkLayer = new LSprite();
addChild(talkLayer);
//添加对话内容
var talkContent = [
	{name:"[Yorhom]",msg:"你好",face:imglist["yorhom_face"]},
];
//加入对话
talkLayer.graphics.drawRect(5,"black",[20,15,400,130],true,"black");
talkLayer.alpha = 0.8;
var talk = new LTalk(talkContent);
talkLayer.addChild(talk);
//设置样式
talk.setNameStyle({x:160,y:40,color:"white",size:12});
talk.setMsgStyle({x:160,y:70,color:"white",size:10});
talk.setFaceStyle({x:30,y:30});
talk.textWidth = 260;
//显示对话
talk.wind();

setNameStyle(style)

■参数:

style:人物名称的样式,格式是一个json对象,如下:{x:名称x坐标,y:名称y坐标,color:字体颜色,font文字的格式:,size:字体大小}

■详细介绍:

用来设置人物名称的样式

■举例:

var talkLayer = new LSprite();
addChild(talkLayer);
//添加对话内容
var talkContent = [
	{name:"[Yorhom]",msg:"你好",face:imglist["yorhom_face"]},
];
//加入对话
talkLayer.graphics.drawRect(5,"black",[20,15,400,130],true,"black");
talkLayer.alpha = 0.8;
var talk = new LTalk(talkContent);
talkLayer.addChild(talk);
//设置样式
talk.setNameStyle({x:160,y:40,color:"white",size:12});
talk.setMsgStyle({x:160,y:70,color:"white",size:10});
talk.setFaceStyle({x:30,y:30});
talk.textWidth = 260;
//显示对话
talk.wind();

setMsgStyle(style)

■参数:

style:对话内容的样式,格式是一个json对象,如下:{x:对话内容x坐标,y:对话内容y坐标,color:字体颜色,font文字的格式:,size:字体大小}

■详细介绍:

用来设置对话内容的样式

■举例:

var talkLayer = new LSprite();
addChild(talkLayer);
//添加对话内容
var talkContent = [
	{name:"[Yorhom]",msg:"你好",face:imglist["yorhom_face"]},
];
//加入对话
talkLayer.graphics.drawRect(5,"black",[20,15,400,130],true,"black");
talkLayer.alpha = 0.8;
var talk = new LTalk(talkContent);
talkLayer.addChild(talk);
//设置样式
talk.setNameStyle({x:160,y:40,color:"white",size:12});
talk.setMsgStyle({x:160,y:70,color:"white",size:10});
talk.setFaceStyle({x:30,y:30});
talk.textWidth = 260;
//显示对话
talk.wind();

wind(num,completeFunc)

■参数:

num:显示对话序号

completeFunc:每次对话完成后调用此函数

■详细介绍:

用来显示对话

■举例:

var talkLayer = new LSprite();
addChild(talkLayer);
//添加对话内容
var talkContent = [
	{name:"[Yorhom]",msg:"你好",face:imglist["yorhom_face"]},
];
//加入对话
talkLayer.graphics.drawRect(5,"black",[20,15,400,130],true,"black");
talkLayer.alpha = 0.8;
var talk = new LTalk(talkContent);
talkLayer.addChild(talk);
//设置样式
talk.setNameStyle({x:160,y:40,color:"white",size:12});
talk.setMsgStyle({x:160,y:70,color:"white",size:10});
talk.setFaceStyle({x:30,y:30});
talk.textWidth = 260;
//显示对话
talk.wind();

clear()

■详细介绍:

用来清空对话对象上的内容

■举例:

var talkLayer = new LSprite();
addChild(talkLayer);
//添加对话内容
var talkContent = [
	{name:"[Yorhom]",msg:"你好",face:imglist["yorhom_face"]},
];
//加入对话
talkLayer.graphics.drawRect(5,"black",[20,15,400,130],true,"black");
talkLayer.alpha = 0.8;
var talk = new LTalk(talkContent);
talkLayer.addChild(talk);
//设置样式
talk.setNameStyle({x:160,y:40,color:"white",size:12});
talk.setMsgStyle({x:160,y:70,color:"white",size:10});
talk.setFaceStyle({x:30,y:30});
talk.textWidth = 260;
//显示对话
talk.wind(0,function(){
	talk.clear();
});

LCharacter(
    data,
    row,
    col,
    speed,
    isFighter
)

■参数:

data:人物图片

row:将图片切成多少行,以方便执行动画

col:将图片切成多少列,以方便执行动画

speed:人物动画播放频率相对屏幕刷新频率的倍数

isFighter:是否处于战斗状态

■可用属性:

x:人物x坐标

y:人物y坐标

anime:人物动画对象

mode:人物状态,可以为任何值

index:人物序号

effect:人物特效

hp:体力值

attack:攻击力

defense:防御力

※hp,attack,defense是在参数isFighter为true时可用

※effect可以赋值为LSkill.avatar,LSkill.flicker

■详细介绍:

lufylegendRPG中一个人物类

■举例:

var backLayer = new LSprite();
addChild(backLayer);
var chara = new LCharacter(imglist["player"],4,4,3);
backLayer.addChild(chara);
backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
function onframe(){
    chara.onframe();
}

setData(data,row,col,speed,isFighter)

■参数:

data:人物图片

row:将图片切成多少行,以方便执行动画

col:将图片切成多少列,以方便执行动画

speed:人物动画播放频率相对屏幕刷新频率的倍数

isFighter:是否处于战斗状态

■详细介绍:

重新设置人物数据

onframe()

■详细介绍:

播放一行人物动画

■举例:

var backLayer = new LSprite();
addChild(backLayer);
var chara = new LCharacter(imglist["player"],4,4,3);
backLayer.addChild(chara);
backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
function onframe(){
    chara.onframe();
}

addActionEventListener(
    type,
    func,
)

■参数:

type:事件类型

func:响应事件的函数

■详细介绍:

加入人物动画监听事件

■举例:

var backLayer = new LSprite();
addChild(backLayer);
var chara = new LCharacter(imglist["player"],4,4,3);
backLayer.addChild(chara);
backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
chara.addActionEventListener(LEvent.COMPLETE,function(){
	trace("hello");
});
function onframe(){
    chara.onframe();
}

setAction(
    rowIndex,
    colIndex,
    mode,
    isMirror
)

■参数:

rowIndex:播放动画的行号

colIndex:播放动画的列号

mode:(1,0,-1)分别代表(正序播放,静止,倒序播放)

isMirror:Boolean型,当设定为true的时候,图片显示为水平翻转后的镜像

■详细介绍:

设置播放动画的行号,列号,播放顺序和镜像

■举例:

var backLayer = new LSprite();
addChild(backLayer);
var chara = new LCharacter(imglist["player"],4,4,3);
backLayer.addChild(chara);
backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
chara.setAction(1,0,1,true);
function onframe(){
    chara.onframe();
}

getAction()

■详细介绍:

得到当前动画播放的行号,列号,播放顺序和镜像。
返回值:结果数组[行号,列号,播放模式,是否为镜像]

■举例:

var backLayer = new LSprite();
addChild(backLayer);
var chara = new LCharacter(imglist["player"],4,4,3);
backLayer.addChild(chara);
backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
var animeData = chara.getAction(1,0,1,true);
alert(animeData);
function onframe(){
    chara.onframe();
}

moveTo(
    x,
    y,
    timer,
    type,
    style,
    completefunc
)

■参数:

x:移动到的x坐标

y:移动到的y坐标

timer:缓动执行的时间

type:缓动类型

style:移动方式

completefunc:完成后调用此函数

※style可以赋值为LMoveStyle.horizontal,LMoveStyle.vertical,LMoveStyle.direct

■详细介绍:

使人物以缓动的形式移动到指定位置

■举例:

var backLayer = new LSprite();
addChild(backLayer);
var chara = new LCharacter(imglist["player"],4,4,3);
backLayer.addChild(chara);
backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
chara.moveTo(100,100,1,Quad.easeIn,LMoveStyle.vertical,function(){alert("complete");});
function onframe(){
    chara.onframe();
}

addName(name,style)

■参数:

name:文字内容

style:文字样式

※style是一个数组,形式如下:[x,y,文字颜色,文字尺寸,文字的格式]

■详细介绍:

给人物身旁添加文字,添加的文字跟随人物一起移动。通常用来显示hp值,人物名称等

■举例:

var backLayer = new LSprite();
addChild(backLayer);
var chara = new LCharacter(imglist["player"],4,4,3);
backLayer.addChild(chara);
backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
chara.addName("yorhom",[10,58,"red","12","黑体"]);
function onframe(){
    chara.onframe();
}

LHitList(objectA,sprite,type)

■参数:

objectA:检测对象A

sprite:检测对象B为这个LSprite中的所有成员

type:检测碰撞类型

※type的值可以为"TestRect"和"TestArc","TestRect"代表矩型碰撞,"TestArc"代表圆形碰撞

■详细介绍:

获取一个对象与其他对象碰撞的列表

■举例:

init(30,"mylegend",800,450,main);
LStage.setDebug(true);
var back,hita,hitb,hitc,hit;
var list;
var label;
function main(){
	back = new LSprite();
	addChild(back);
	back.addEventListener(LMouseEvent.MOUSE_DOWN,mousedown);
	back.graphics.drawRect(5,"dimgray",[0, 0, LStage.width, LStage.height],true,"white");
	
	hitb = new LSprite();
	hitb.x = 200;
	hitb.y = 100;
	back.addChild(hitb);
	hitb.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hitc = new LSprite();
	hitc.x = 300;
	hitc.y = 100;
	back.addChild(hitc);
	hitc.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hita = new LSprite();
	hita.x = 100;
	hita.y = 100;
	hita.alpha = 0.8;
	back.addChild(hita);
	hita.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hit = new LHitList(hita,back);
	
	var button = new LButtonSample2("重置",20);
	button.backgroundCorl = "orange";
	button.x = 700;
	button.y = 350;
	addChild(button);
	button.addEventListener(LMouseEvent.MOUSE_DOWN,clear)
}
function addText(sprite){
	lable = new LTextField(); 
	lable.size = 10;
	lable.x = 20;
	lable.y = 20;
	lable.color = "#ff0000"; 
	lable.text = "我被碰到了";
	sprite.addChild(lable);
}
function mousedown(event){
	hit.clearList();
	hita.x = event.selfX - 50;
	hita.y = event.selfY - 50;
	list = hit.getList();
	change();
}
function change(){
	for(var key in list){
		addText(list[key]);
	}
}
function clear(){
	hita.x = 100;
	hita.y = 100;
	hita.alpha = 0.8;
	
	hitb.removeAllChild();
	hitc.removeAllChild();
}

getList()

■详细介绍:

获取列表,返回值是一个数组

■举例:

init(30,"mylegend",800,450,main);
LStage.setDebug(true);
var back,hita,hitb,hitc,hit;
var list;
var label;
function main(){
	back = new LSprite();
	addChild(back);
	back.addEventListener(LMouseEvent.MOUSE_DOWN,mousedown);
	back.graphics.drawRect(5,"dimgray",[0, 0, LStage.width, LStage.height],true,"white");
	
	hitb = new LSprite();
	hitb.x = 200;
	hitb.y = 100;
	back.addChild(hitb);
	hitb.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hitc = new LSprite();
	hitc.x = 300;
	hitc.y = 100;
	back.addChild(hitc);
	hitc.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hita = new LSprite();
	hita.x = 100;
	hita.y = 100;
	hita.alpha = 0.8;
	back.addChild(hita);
	hita.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hit = new LHitList(hita,back);
	
	var button = new LButtonSample2("重置",20);
	button.backgroundCorl = "orange";
	button.x = 700;
	button.y = 350;
	addChild(button);
	button.addEventListener(LMouseEvent.MOUSE_DOWN,clear)
}
function addText(sprite){
	lable = new LTextField(); 
	lable.size = 10;
	lable.x = 20;
	lable.y = 20;
	lable.color = "#ff0000"; 
	lable.text = "我被碰到了";
	sprite.addChild(lable);
}
function mousedown(event){
	hit.clearList();
	hita.x = event.selfX - 50;
	hita.y = event.selfY - 50;
	list = hit.getList();
	change();
}
function change(){
	for(var key in list){
		addText(list[key]);
	}
}
function clear(){
	hita.x = 100;
	hita.y = 100;
	hita.alpha = 0.8;
	
	hitb.removeAllChild();
	hitc.removeAllChild();
}

clearList()

■详细介绍:

清空列表,以便判断第二次碰撞

■举例:

init(30,"mylegend",800,450,main);
LStage.setDebug(true);
var back,hita,hitb,hitc,hit;
var list;
var label;
function main(){
	back = new LSprite();
	addChild(back);
	back.addEventListener(LMouseEvent.MOUSE_DOWN,mousedown);
	back.graphics.drawRect(5,"dimgray",[0, 0, LStage.width, LStage.height],true,"white");
	
	hitb = new LSprite();
	hitb.x = 200;
	hitb.y = 100;
	back.addChild(hitb);
	hitb.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hitc = new LSprite();
	hitc.x = 300;
	hitc.y = 100;
	back.addChild(hitc);
	hitc.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hita = new LSprite();
	hita.x = 100;
	hita.y = 100;
	hita.alpha = 0.8;
	back.addChild(hita);
	hita.graphics.drawRect(5,"dimgray",[0, 0, 100, 100],true,"gray");
	
	hit = new LHitList(hita,back);
	
	var button = new LButtonSample2("重置",20);
	button.backgroundCorl = "orange";
	button.x = 700;
	button.y = 350;
	addChild(button);
	button.addEventListener(LMouseEvent.MOUSE_DOWN,clear)
}
function addText(sprite){
	lable = new LTextField(); 
	lable.size = 10;
	lable.x = 20;
	lable.y = 20;
	lable.color = "#ff0000"; 
	lable.text = "我被碰到了";
	sprite.addChild(lable);
}
function mousedown(event){
	hit.clearList();
	hita.x = event.selfX - 50;
	hita.y = event.selfY - 50;
	list = hit.getList();
	change();
}
function change(){
	for(var key in list){
		addText(list[key]);
	}
}
function clear(){
	hita.x = 100;
	hita.y = 100;
	hita.alpha = 0.8;
	
	hitb.removeAllChild();
	hitc.removeAllChild();
}

LBackground(data,mode)

■参数:

data:背景图片数据,为一个LBitmapData对象

mode:背景显示模式

※mode可以赋值为LBackgroundStyle.tile,LBackgroundStyle.scale。
当为LBackgroundStyle.tile时,背景图如果小于界面大小则平铺以至填满界面
当为LBackgroundStyle.scale时,背景图如果小于界面大小则拉伸以至填满界面

■详细介绍:

显示一张背景图

■举例:

init(30,"mylegend",800,450,main);
var bitmapdata = new LBitmapData(datalist["back01"]);
var background = new LBackground(bitmapdata,LBackgroundStyle.scale);
addChild(background);

showData()

■详细介绍:

显示背景数据

※必须是在debug模式下才能显示

■举例:

init(30,"mylegend",800,450,main);
var bitmapdata = new LBitmapData(datalist["back01"]);
var background = new LBackground(bitmapdata,LBackgroundStyle.scale);
addChild(background);
background.showData();

LSceneData(
    backObj,
    charaList,
    talkContent,
    weather
)

■参数:

backObj:背景图对象,可以是LBackground对象,也可以是LTileMap对象

charaList:人物列表

talkContent:对话列表

weather:LEffect对象

※charaList的形式如下:

var charaList = [
	//chara代表人物类型
	//data代表人物图片数据
	//row就是图片切为动画小图时的行号
	//col就是图片切为动画小图时的列号
	//speed为人物动画频率
	//x为人物x坐标,如果backObj是一个LTileMap对象,则x为人物所在地图块的列号
	//y为人物y坐标,如果backObj是一个LTileMap对象,则x为人物所在地图块的行号
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8}, //当chara的值为"player"时,该对象为可控制的人物
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},//当chara不是"player"时,需要添加talkIndex属性来确认所对应的对话
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];

※talkContent的形式如下:

var talkContent = {
	1:[ //如果一个角色的talkIndex是1,与其对话显示对话为这一段对话
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[ //如果一个角色的talkIndex是2,与其对话显示对话为这一段对话
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};

■详细介绍:

保存场景数据

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
addChild(stageObj);

setData(
    backObj,
    charaList,
    talkContent,
    weather
)

■参数:

backObj:背景图对象,可以是LBackground对象,也可以是LTileMap对象

charaList:人物列表

talkContent:对话列表

weather:LEffect对象

※charaList的形式如下:

var charaList = [
	//chara代表人物类型
	//data代表人物图片数据
	//row就是图片切为动画小图时的行号
	//col就是图片切为动画小图时的列号
	//speed为人物动画频率
	//x为人物x坐标,如果backObj是一个LTileMap对象,则x为人物所在地图块的列号
	//y为人物y坐标,如果backObj是一个LTileMap对象,则x为人物所在地图块的行号
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8}, //当chara的值为"player"时,该对象为可控制的人物
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},//当chara不是"player"时,需要添加talkIndex属性来确认所对应的对话
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];

※talkContent的形式如下:

var talkContent = {
	1:[ //如果一个角色的talkIndex是1,与其对话显示对话为这一段对话
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[ //如果一个角色的talkIndex是2,与其对话显示对话为这一段对话
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};

■详细介绍:

重新设置场景数据

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData();
stageData.setData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
addChild(stageObj);

showData()

■详细介绍:

显示场景数据

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
addChild(stageObj);
stageObj.showData();

LScene(data)

■参数:

data:场景数据,为一个LSceneData对象

■可用属性:

x:场景x坐标

y:场景y坐标

player:可操控的人物对象

playerX:人物在地图中的列号

playerY:人物在地图中的行号

■详细介绍:

显示一个场景对象

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
addChild(stageObj);

addMoveEventListener(type,func)

■参数:

type:事件类型

func:调用函数

■详细介绍:

使人物在地图上每移动完一格就触发此事件

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
stageObj.addMoveEventListener(LEvent.COMPLETE,function(){
	alert("COMPLETE");
});
addChild(stageObj);

setMap(canMove,cannotMove)

■参数:

canMove:在地形数据中代表可以移动的数字

cannotMove:在地形数据中代表不可以移动的数字

■详细介绍:

改变在地形数据中代表可以移动和不可以移动的数字

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
stageObj.setMap(0,1);
addChild(stageObj);

setCharacter(
    moveLeft,
    moveRight,
    moveUp,
    moveDown
)

■参数:

moveLeft:人物在向左行走时在动画中的行号

moveRight:人物在向右行走时在动画中的行号

moveUp:人物在向上行走时在动画中的行号

moveDown:人物在向下行走时在动画中的行号

■详细介绍:

改变人物行走的样式

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
stageObj.setCharacter(0,1,2,3);
addChild(stageObj);

movePlayer(dir)

■参数:

dir:人物行动方向

※参数dir可为LPlayer.LEFT(向左移动),LPlayer.RIGHT(向右移动),LPlayer.UP(向上移动),LPlayer.DOWN(向下移动)

■详细介绍:

运用此方法可以自行操控人物移动

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
stageObj.movePlayer(LPlayerMove.LEFT);
addChild(stageObj);

startTalk()

■详细介绍:

运用此方法可以操控人物对话(当有其他角色在主角附近时才会开始对话)

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
stageObj.startTalk();
addChild(stageObj);

setTalkStyle(
    faceStyle,
    nameStyle,
    msgStyle,
    back,
    textWidth
)

■参数:

faceStyle:对话人头像样式,格式如下:{x:x,y:y}

nameStyle:对话人名称样式,格式如下:{x:x,y:y,size:文字尺寸,color:文字颜色,font:文字的格式}

msgStyle:对话内容样式,格式如下:{x:x,y:y,size:文字尺寸,color:文字颜色,font:文字的格式}

back:背景

textWidth:对话区宽度

■详细介绍:

运用此方法可以设置人物对话的样式

■举例:

var map = [
	[0,0,1,2,2,2,2,2,2,2,2,1,0,0,0],
	[0,0,1,3,5,5,1,5,5,5,5,1,0,0,0],
	[0,0,1,80,4,4,1,80,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,1,80,8,7,8,1,0,0,0],
	[0,0,1,80,4,4,5,81,4,4,4,1,0,0,0],
	[0,0,1,2,2,2,6,4,4,4,4,1,0,0,0],
	[0,0,1,3,5,5,81,4,4,4,4,1,0,0,0],
	[0,0,1,80,4,4,4,4,4,4,9,1,0,0,0],
	[0,0,1,2,2,2,2,6,2,2,2,1,0,0,0]
];
var mapdata = [
	[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,1,0,0,1,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],
	[1,1,1,0,0,0,0,0,0,0,1,1,1,1,1],
	[1,1,1,1,1,1,1,0,1,1,1,1,1,1,1]
];
var talkContent = {
	1:[
		{face:datalist["m"],name:"[鸣人]",msg:"你们在干什么啊?"},
		{face:datalist["n"],name:"[黑衣忍者甲]",msg:"我们在喝茶。"}
	],
	2:[
		{face:datalist["n"],name:"[黑衣忍者乙]",msg:"我们在喝茶,你不要打扰我们。"},
		{face:datalist["m"],name:"[鸣人]",msg:"....."}
	]
};
var charaList = [
	{chara:"player",data:datalist["player"],row:4,col:4,speed:3,x:7,y:8},
	{chara:"npc",talkIndex:1,data:datalist["npc"],row:4,col:4,speed:3,x:8,y:3},
	{chara:"npc",talkIndex:2,data:datalist["npc"],row:4,col:4,speed:3,x:10,y:3}
];
var mapObj = new LTileMap(map,datalist["map"],32,32,mapdata);
var stageData = new LSceneData(mapObj,charaList,talkContent);
var stageObj = new LScene(stageData);
stageObj.setTalkStyle({x:-80,y:20},{x:20,y:55,size:12,color:"lightgray"},{x:20,y:85,size:10,color:"lightgray"},talkBoard,200);
addChild(stageObj);

转载于:https://www.cnblogs.com/yorhom/archive/2013/06/15/lufylegendrpg_api.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐