This commit is contained in:
ckcz123 2019-12-01 13:20:30 +08:00
parent 7827b64db6
commit d41c345cac

View File

@ -1,19 +1,20 @@
附录API列表V2.6.3版)
# 附录API列表
?> 目前版本**v2.6.5**,上次更新时间:* {docsify-updated} *
这里将列出所有被转发到core的API没有被转发的函数此处不会列出请自行在代码中查看。
文档较大如有什么需求请自行Ctrl+F进行搜索。
附录量较大如有什么需求请自行Ctrl+F进行搜索。
如有任何疑问,请联系小艾寻求帮助。
------------------------------------ [core.js] ------------------------------------
## core.js
core.js中只有很少的几个函数主要是游戏开始前的初始化等。
但是core中定义了很多游戏运行时的状态这些状态很多都会被使用到。
``` text
core.__SIZE__, core.__PIXELS__
游戏窗口大小对于13x13的游戏而言这两个值分别是13和41615x15来说分别是15和480。
@ -163,17 +164,13 @@ core.doFunc(func, _this)
执行一个函数func为函数体或者插件中的函数名_this为使用的this。
如果func为一个字符串则视为插件中的函数名同时_this将被设置成core.plugin。
此函数剩余参数将作为参数被传入func。
```
------------------------------------ [actions.js] ------------------------------------
## actions.js
actions.js主要是处理一些和用户交互相关的内容。
```text
core.registerAction(action, name, func, priority)
注册一个用户交互行为。
action要注册的交互类型如 ondown, onclick, keyDown 等等。
@ -259,11 +256,9 @@ core.longClick()
请勿直接覆盖或调用此函数,如有需要请注册一个"keyDownCtrl"的交互函数。
注册的交互函数如果某一项返回true则之后仍然会继续触发该长按
如果全部返回false则将停止本次长按行为直到手指离开屏幕并重新进行长按为止。
```
------------------------------------ [control.js] ------------------------------------
## control.js
control.js将负责整个游戏的核心控制系统分为如下几个部分
- requestAnimationFrame相关
@ -277,9 +272,7 @@ control.js将负责整个游戏的核心控制系统分为如下几个部分
- 状态栏和工具栏相关
- 界面resize相关
```text
// ------ requestAnimationFrame 相关 ------ //
core.registerAnimationFrame(name, needPlaying, func)
@ -345,7 +338,7 @@ core.setHeroMoveInterval(callback)
core.moveOneStep(x, y)
每走完一步后执行的操作,被转发到了脚本编辑中。
每走完一步后执行的操作,被转发到了脚本编辑中执行脚本编辑moveOneStep中的内容
core.moveAction(callback)
@ -356,6 +349,7 @@ core.moveAction(callback)
core.moveHero(direction, callback)
令勇士朝一个方向行走。如果设置了callback则只会行走一步并执行回调。
否则将一直朝该方向行走直到core.status.heroStop为true为止。
direction可为"up","down","right","left",分别对应上,下,右,左。
core.isMoving()
@ -368,10 +362,11 @@ core.waitHeroToStop(callback)
core.turnHero(direction)
转向。如果设置了direction则会转到该方向否则会右转。该函数会自动计入录像。
direction可为"up","down","right","left",分别对应上,下,右,左。
core.moveDirectly(destX, destY)
尝试瞬间移动到某点,被转发到了脚本编辑中。
尝试瞬间移动到某点,被转发到了脚本编辑中,执行脚本编辑中的内容
此函数返回非负值代表成功进行瞬移,返回值是省略的步数;如果返回-1则代表没有成功瞬移。
@ -506,12 +501,12 @@ core.syncSave(type) / core.syncLoad()
core.saveData()
获得要存档的内容,实际转发到了脚本编辑中。
获得要存档的内容,实际转发到了脚本编辑中,执行脚本编辑中的内容
core.loadData(data, callback)
实际执行一次读档行为data为读取到的数据callback为执行完毕的回调。
实际转发到了脚本编辑中。
实际转发到了脚本编辑中,执行脚本编辑中的内容
core.getSave(index, callback)
@ -541,19 +536,23 @@ core.removeSave(index)
// ------ 属性、状态、位置、变量等 ------ //
core.setStatus(name, value)
设置勇士当前的某个属性。
设置勇士当前的某个属性name可为"atk","def","hp"等。
如core.setStatus("atk", 100)则为设置勇士攻击为100。
core.addStatus(name, value)
加减勇士当前的某个属性。等价于 core.setStatus(name, core.getStatus(name) + value)
加减勇士当前的某个属性name可为"atk","def","hp"等。
如core.addStatus("atk", 100)则为增加勇士攻击100点。
等价于 core.setStatus(name, core.getStatus(name) + value)。
core.getStatus(name)
获得勇士的某个原始属性值。
获得勇士的某个原始属性值,该值不受百分比增幅影响。
譬如你有一件道具加10%的攻击,你可以使用该函数获得你的攻击被增幅前的数值
core.getStatusOrDefault(status, name)
尝试从status中获得某个原始属性值如果status为null或不存在对应属性值则从勇士属性中获取。
尝试从status中获得某个原始属性值,该值不受百分比增幅影响如果status为null或不存在对应属性值则从勇士属性中获取。
此项在伤害计算函数中使用较多例如传递新的攻击和防御来计算临界和1防减伤。
@ -579,12 +578,14 @@ core.getBuff(name)
core.setHeroLoc(name, value, noGather)
设置勇士位置属性。name只能为'x', 'y'和'direction'之一。
设置勇士位置属性。name只能为'x'勇士x坐标, 'y'勇士y坐标和'direction'(勇士朝向)之一。
如果noGather为true则不会聚集所有的跟随者。
譬如core.setHeroLoc("x", 1, true)则为设置勇士x坐标为1不聚集所有跟随者。
core.getHeroLoc(name)
获得勇士的某个位置属性。如果name为null则直接返回core.status.hero.loc。
譬如core.getHeroLoc("x")则返回勇士当前x坐标
core.getLvName(lv)
@ -593,19 +594,26 @@ core.getLvName(lv)
core.setFlag(name, value)
设置某个自定义变量或flag。如果value为null则会调用core.removeFlag进行删除。
这里的变量与事件中使用的变量等价
譬如core.setFlag("xxx",1)则为设置变量xxx为1。
core.addFlag(name, value)
加减某个自定义的变量或flag。等价于 core.setFlag(name, core.getFlag(name, 0) + value)
这里的变量与事件中使用的变量等价
譬如core.addFlag("xxx",1)则为增加变量xxx1
core.getFlag(name, defaultValue)
获得某个自定义的变量或flag。如果该flag不存在从未赋值过则返回defaultValue值。
获得某个自定义的变量或flag。如果该flag不存在从未赋值过则返回defaultValue的值。
这里的变量与事件中使用的变量等价
譬如core.getFlag("xxx",1)则为获得变量xxx的值如变量xxx不存在则返回1
core.hasFlag(name)
判定是否拥有某个自定义变量或flag。等价于 !!core.getFlag(name, 0)
这里的变量与事件中使用的变量等价
譬如core.hasFlag("xxx",1)则为判断变量xxx是否存在
core.removeFlag(name)
删除一个自定义变量或flag。
@ -626,6 +634,8 @@ core.setWeather(type, level)
core.setCurtain(color, time, callback)
更改画面色调。color为更改到的色调是个三元或四元组time为渐变时间0代表立刻切换。
譬如core.setCurtain([255,255,255,1], 0)即为无回调无等待更改画面色调为白色
core.screenFlash(color, time, times, callback)
@ -665,7 +675,6 @@ core.updateStatusBar(doNotCheckAutoEvents)
更新状态栏,被转发到了脚本编辑中。此函数还会根据是否在回放来设置工具栏的图标。
如果doNotCheckAutoEvents为true则此时不检查自动事件。
core.showStatusBar() / core.hideStatusBar(showToolbox)
显示和隐藏状态栏。
如果showToolbox为true则在竖屏模式下不隐藏工具栏方便手机存读档操作。
@ -698,17 +707,13 @@ core.unregisterResize(name)
core.resize()
屏幕分辨率改变后的重新自适应。
此函数将根据当前的屏幕分辨率信息生成一个obj并传入各个注册好的resize函数中执行。
```
------------------------------------ [enemys.js] ------------------------------------
## enemys.js
enemys.js中定义了一系列和怪物相关的API函数。
```text
core.hasSpecial(special, test)
判断是否含有某个特殊属性。test为要检查的特殊属性编号。
special为要测试的内容允许接收如下类型参数
@ -719,7 +724,7 @@ special为要测试的内容允许接收如下类型参数
core.getSpecials()
获得所有特殊属性的列表。实际上被转发到了脚本编辑中。
获得所有特殊属性的列表。实际上被转发到了脚本编辑中,执行脚本编辑中的内容
core.getSpecialText(enemy)
@ -759,7 +764,7 @@ number为要计算的临界值数量不填默认为1。
core.getDefDamage(enemy, k, x, y, floorId)
获得某个怪物的k防减伤值。k可不填默认为1。
获得某个怪物的k防减伤值。k可不填默认为1x,y,floorId为当前xy坐标和楼层
core.getEnemyInfo(enemy, hero, x, y, floorId)
@ -784,13 +789,11 @@ core.getCurrentEnemys(floorId)
core.hasEnemyLeft(enemyId, floorId)
检查某个楼层是否还有剩余的(指定)怪物。
floorId为楼层ID可忽略表示当前楼层。也可以数组如["MT0","MT1"]同时检测多个楼层。
floorId为楼层ID可忽略表示当前楼层。也可以数组如["MT0","MT1"]同时检测多个楼层。
enemyId如果不填或null则检查是否剩余任何怪物否则只检查是否剩余指定的某类怪物。
```
------------------------------------ [events.js] ------------------------------------
## events.js
events.js将处理所有和事件相关的操作主要分为五个部分
- 游戏的开始和结束
@ -800,8 +803,7 @@ events.js将处理所有和事件相关的操作主要分为五个部分
- 一些具体事件的执行内容
```text
// ------ 游戏的开始和结束 ------ //
core.resetGame(hero, hard, floorId, maps, values)
@ -817,16 +819,16 @@ seed为开始时要设置的的种子route为要开始播放的录像callb
core.setInitData()
根据难度分歧来初始化难度包括设置flag:hard设置初始属性等。
该函数实际被转发到了脚本编辑中。
该函数实际被转发到了脚本编辑中,执行脚本编辑中的内容
core.win(reason, norank)
游戏胜利reason为结局名norank如果为真则该结局不计入榜单。
该函数实际被转发到了脚本编辑中。
该函数实际被转发到了脚本编辑中,执行脚本编辑中的内容
core.lose(reason)
游戏失败reason为结局名。该函数实际被转发到了脚本编辑中。
游戏失败reason为结局名。该函数实际被转发到了脚本编辑中,执行脚本编辑中的内容
core.gameOver(ending, fromReplay, norank)
@ -866,7 +868,7 @@ id为怪物的IDx和y为怪物坐标force如果为真将强制战斗cal
core.beforeBattle(enemyId, x, y)
战前事件。实际被转发到了脚本编辑中,可以在这里加上一些战前特效。
战前事件。实际被转发到了脚本编辑中,执行脚本编辑中的内容,可以用于加上一些战前特效。
此函数在“检测能否战斗和自动存档”【之后】执行。
如果需要更早的战前事件,请在插件中覆重写 core.events.doSystemEvent 函数。
此函数返回true则将继续本次战斗返回false将不再战斗。
@ -874,7 +876,7 @@ core.beforeBattle(enemyId, x, y)
core.afterBattle(enemyId, x, y, callback)
战后事件,将执行扣血、加金币经验、特殊属性处理、战后事件处理等操作。
实际被转发到了脚本编辑中。
实际被转发到了脚本编辑中,执行脚本编辑中的内容
core.openDoor(x, y, needKey, callback)
@ -883,16 +885,17 @@ core.openDoor(x, y, needKey, callback)
core.afterOpenDoor(doorId, x, y, callback)
开完一个门后执行的事件,实际被转发到了脚本编辑中。
开完一个门后执行的事件,实际被转发到了脚本编辑中,执行脚本编辑中的内容
core.getItem(id, num, x, y, callback)
获得若干个道具。itemId为道具IDitemNum为获得的道具个数不填默认为1。
x和y为道具点的坐标如果设置则会擦除地图上的该点。
x和y为道具点的坐标如果设置则会擦除地图上的该点也可不填。
譬如core.getItem("yellowKey",2)会直接获得两把黄钥匙。
core.afterGetItem(id, x, y, callback)
获得一个道具后执行的事件,实际被转发到了脚本编辑中。
获得一个道具后执行的事件,实际被转发到了脚本编辑中,执行脚本编辑中的内容
core.getNextItem(noRoute)
@ -929,7 +932,7 @@ core.pushBox(data)
core.afterPushBox()
推箱子之后触发的事件,实际被转发到了脚本编辑中。
推箱子之后触发的事件,实际被转发到了脚本编辑中,执行脚本编辑中的内容
core.changeLight(id, x, y)
@ -962,10 +965,11 @@ core.startEvents(list, x, y, callback)
此函数将调用core.setEvents然后停止勇士再执行core.doAction()。
core.doAction()
core.doAction(keepUI)
执行下一个自定义事件。
此函数将检测事件列表是否全部执行完毕,如果是则执行回调函数。
否则将从事件列表中弹出下一个事件并调用core.doEvent进行执行。
如果keepUI为true则不会清掉UI层和selector适合于自己用脚本的绘制。
core.insertAction(action, x, y, callback, addToLast)
@ -983,6 +987,15 @@ core.getCommonEvent(name)
core.recoverEvents(data)
恢复事件现场。一般用于呼出怪物手册、呼出存读档页面等时,恢复事件执行流。
core.checkAutoEvents()
检测自动事件并执行。
core.precompile(events)
尝试预编译一段事件。
// ------ 点击状态栏图标时执行的一些操作 ------ //
core.openBook(fromUserAction)
@ -1030,15 +1043,21 @@ core.follow(name) / core.unfollow(name)
core.setValue(name, value, prefix) / core.addValue(name, value, prefix)
设置/增减某个数值。name可以是status:xxxitem:xxx或flag:xxx。
value可以是一个表达式将调用core.calValue()计算。prefix为前缀独立开关使用。
value可以是一个表达式将调用core.calValue()计算。prefix为前缀独立开关使用,脚本中一般忽略
core.doEffect(effect, need, times)
执行一个effect操作。该函数目前仅被全局商店的status:xxx+=yyy所调用。
core.setEnemy(id, name, value, prefix)
设置一个怪物属性。id为怪物的IDname为要设置的项比如hp,atk,def等等。
value可以是一个表达式将调用core.calValue()计算。prefix为前缀独立开关使用脚本中一般忽略。
core.setFloorInfo(name, values, floorId, prefix)
设置某层楼的楼层属性。
设置某层楼的楼层属性其中name为该楼层属性对应的条目values为要设置的值floorId为楼层idprefix一般直接忽略。
譬如core.setFloorInfo("name","4", "MT1")则为设置MT1显示在状态栏中的层数为4
core.setGlobalAttribute(name, value)
@ -1126,17 +1145,13 @@ core.tryUseItem(itemId)
core.afterUseBomb()
使用炸弹或圣锤后的事件。实际被转发到了脚本编辑中。
```
------------------------------------ [icons.js] ------------------------------------
## icons.js
icons.js主要是负责素材相关信息比如某个素材在对应的图片上的位置。
```text
core.getClsFromId(id)
根据某个素材的ID获得该素材的cls
@ -1144,17 +1159,13 @@ core.getClsFromId(id)
core.getTilesetOffset(id)
根据某个素材来获得对应的tileset和坐标信息。
如果该素材不是tileset则返回null。
```
------------------------------------ [items.js] ------------------------------------
## items.js
items.js主要负责一切和道具相关的内容。
```text
core.getItemEffect(itemId, itemNum)
即捡即用类的道具获得时的效果。实际对应道具图块属性中的itemEffect框。
@ -1205,8 +1216,9 @@ core.addItem(itemId, itemNum)
core.getEquipTypeByName(name)
根据装备位名称来找到一个空的装备孔,适用于多重装备。
根据装备位名称来找到一个空的装备孔,适用于多重装备,装备位名称可在全塔属性中设置
如果没有一个装备孔是该装备名称,则返回-1。
譬如core.getEquipTypeByName("武器")默认返回全塔属性中武器对应的装备孔号0。
core.getEquipTypeById(equipId)
@ -1219,11 +1231,12 @@ core.canEquip(equipId, hint)
core.loadEquip(equipId, callback)
穿上某个装备。
穿上某个装备equipId为装备id
core.unloadEquip(equipType, callback)
脱下某个装备孔的装备。
譬如core.unloadEquip(0)则为脱下0号装备孔中的装备默认0号装备孔对应“武器”1号装备孔对应“盾牌”
core.compareEquipment(compareEquipId, beComparedEquipId)
@ -1238,6 +1251,10 @@ core.quickSaveEquip(index)
core.quickLoadEquip()
读取当前套装。index为读取的套装编号。
core.getEquippedStatus(name)
获得装备直接增加的属性数据。
```
## loader.js
@ -1273,11 +1290,9 @@ core.loadBgm(name)
core.freeBgm(name)
释放一个bgm的内存并移出缓存列表。如果该bgm正在播放则也会立刻停止。
```
------------------------------------ [maps.js] ------------------------------------
## map.js
maps.js负责一切和地图相关的处理内容包括如下几个方面
- 地图的初始化,保存和读取,地图数组的生成
@ -1288,9 +1303,7 @@ maps.js负责一切和地图相关的处理内容包括如下几个方面
- 移动/跳跃图块,淡入淡出图块
- 全局动画控制,动画的绘制
```text
// ------ 地图的初始化,保存和读取,地图数组的生成 ------ //
core.loadFloor(floorId, map)
@ -1299,7 +1312,7 @@ map为存档信息如果某项在map中不存在则会从core.floors中读取
core.getNumberById(id)
给定一个图块ID找到对应的数字
给定一个图块ID找到图块对应的图块编号
core.initBlock(x, y, id, addInfo, eventFloor)
@ -1435,7 +1448,7 @@ toDraw为要绘制到的信息可为null或为一个画布名包括
// ------ 获得某个点的图块信息 ------ //
core.noPass(x, y, floorId)
判定某个点是否有noPass的图块。
判定某个点是否有noPass(不可通行)的图块。
core.npcExists(x, y, floorId)
@ -1443,7 +1456,7 @@ core.npcExists(x, y, floorId)
core.terrainExists(x, y, id, floorId)
判定某个点是否有(指定的)地形存在。
判定某个点是否有(id对应的)地形存在。
如果id为null则只要存在terrains即为真否则还会判定对应点的ID。
@ -1456,7 +1469,7 @@ core.nearStair()
core.enemyExists(x, y, id, floorId)
判定某个点是否有(指定的)怪物存在。
判定某个点是否有(id对应的)怪物存在。
如果id为null则只要存在怪物即为真否则还会判定对应点的怪物ID。
请注意如果需要判定某个楼层是否存在怪物请使用core.hasEnemyLeft()函数。
@ -1513,14 +1526,17 @@ core.removeBlock(x, y, floorId)
core.removeBlockById(index, floorId)
每个楼层的图块存成一个数组index即为该数组中的索引每个索引对应该地图中的一个图块
根据索引从地图的block数组中尽可能删除一个图块。floorId可不填或null表示当前楼层。
core.removeBlockByIds(floorId, ids)
ids为由索引组成的数组如[0,1]等
根据索引数组从地图的block数组中尽可能删除一系列图块。floorId可不填或null表示当前楼层。
core.canRemoveBlock(block, floorId)
block为图块信息可由core.getBlock获取
判定当前能否完全删除某个图块。floorId可不填或null表示当前楼层。
如果该点存在自定义事件,或者是重生怪,则不可进行删除。
@ -1564,7 +1580,7 @@ number为要设置到的图块数字x,y和floorId为目标点坐标和楼层
core.resetMap(floorId)
重置某层或若干层的地图和楼层属性。
floorId可为某个楼层ID或者一个楼层数组同时重置若干层如果不填则只重置当前楼层。
floorId可为某个楼层ID或者一个楼层数组如["MT1","MT2"](同时重置若干层);如果不填则只重置当前楼层。
// ------ 移动/跳跃图块,淡入淡出图块 ------ //
@ -1611,20 +1627,16 @@ core.drawAnimate(name, x, y, callback)
core.stopAnimate(id, doCallback)
立刻停止某个动画的播放。id为上面core.drawAnimate的返回值。
如果doCallback为真则会执行该动画所对应的回调函数。
```
------------------------------------ [ui.js] ------------------------------------
## ui.js
ui.js负责一切UI界面的绘制。主要包括三个部分
- 设置某个画布的属性的相关API
- 具体的某个UI界面的绘制
- 动态创建画布相关的API
```text
// ------ 设置某个画布的属性的相关API ------//
这系列函数的name一般都是画布名可以是系统画布或动态创建的画布。
但也同时也允许直接传画布的context本身将返回自身。
@ -1641,11 +1653,16 @@ core.clearMap(name)
该函数的name也可以是'all',若为'all'则为清空所有系统画布。
core.fillText(name, text, x, y, style, font)
core.fillText(name, text, x, y, style, font, maxWidth)
在某个画布上绘制一段文字。
text为要绘制的文本x,y为要绘制的坐标style可选为绘制的样式font可选为绘制的字体。下同
style可直接使用"red","white"等或用"rgba(255,255,255,1)"或用"#FFFFFF"等方式来获得字体对应的颜色
font的格式为"20px Verdana"前者为字体大小,后者为字体
如果maxWidth不为null则视为文字最大宽度如果超过此宽度则会自动放缩文字直到自适应为止。
请注意textAlign和textBaseline将决定绘制的左右对齐和上下对齐方式。
具体可详见core.setTextAlign()和core.setTextBaseline()函数。
譬如core.fillText("ui", "这是要描绘的文字", 10, 10, "red", "20px Verdana", 100)
即是在ui图层上以10,10为起始点描绘20像素大小Verdana字体的红色字长度不超过100像素
core.fillBoldText(name, text, x, y, style, font)
@ -1653,7 +1670,7 @@ core.fillBoldText(name, text, x, y, style, font)
core.fillRect(name, x, y, width, height, style)
绘制一个矩形。style可选为绘制样式。如果设置将调用core.setFillStyle()。(下同)
绘制一个矩形。width, height为矩形宽高style可选为绘制样式。如果设置将调用core.setFillStyle()。(下同)
core.strokeRect(name, x, y, width, height, style, lineWidth)
@ -1662,11 +1679,11 @@ lineWidth如果设置将调用core.setLineWidth()。(下同)
core.drawLine(name, x1, y1, x2, y2, style, lineWidth)
绘制一条线。
绘制一条线x1y1为起始点像素x2y2为终止点像素
core.drawArrow(name, x1, y1, x2, y2, style, lineWidth)
绘制一个箭头。
绘制一个箭头x1y1为起始点像素x2y2为终止点像素
core.setFont(name, font) / core.setLineWidth(name, lineWidth)
@ -1688,7 +1705,7 @@ core.setFillStyle(name, style) / core.setStrokeStyle(name, style)
core.setTextAlign(name, align)
设置一个画布的文字横向对齐模式这里的align只能为'left', 'right'和'center'。
设置一个画布的文字横向对齐模式这里的align只能为'left', 'right'和'center',分别对应左对齐,右对齐,居中
默认为'left'。
@ -1719,6 +1736,13 @@ core.drawImage(name, image, x, y, w, h, x1, y1, w1, h1)
http://www.w3school.com.cn/html5/canvas_drawimage.asp
这里的image允许传一个图片画布。也允许传递图片名将从你导入的图片中获取图片内容。
core.drawIcon(name, id, x, y, w, h)
在一张画布上绘制一个图标。
id为注册过的图标ID也可以使用状态栏的图标ID例如lv, hp, up, save, settings等。
x和y为绘制的左上角坐标w和h可选为绘制的宽高如果不填或null则使用该图标的默认宽高。
// ------ 具体的某个UI界面的绘制 ------ //
core.closePanel()
结束一切事件和UI绘制关闭UI窗口返回游戏。
@ -1729,11 +1753,16 @@ core.clearUI()
重置UI窗口。此函数将清掉所有的UI帧动画和光标清空UI画布并将alpha设为1。
core.drawTip(text, id)
core.drawTip(text, id, clear)
在左上角以气泡的形式绘制一段提示。
text为文字内容仅支持${}的表达式计算,不支持换行和变色。
id可选为同时绘制的图标ID如果不为null则会同时绘制该图标仅对32x32的素材有效
也可以使用状态栏的图标ID例如lv, hp, up, save, settings等。
如果clear为true则会清空当前所有正在显示的提示。
core.clearTip()
清空当前所有正在显示的提示。
core.drawText(content, callback)
@ -1763,7 +1792,8 @@ posInfo如果不为null则是一个含position, px和py的对象表示一个
core.drawTextContent(ctx, content, config)
根据配置在某个画布上绘制一段文字。此函数会被core.drawTextBox()所调用。
ctx为画布名或画布本身如果不设置则会忽略该函数。
content为要绘制的文字内容支持所有的文字效果如\n${}\r\\i\\c\\d\\e等但不支持支持\t和\b的语法。
content为要绘制的文字内容支持所有的文字效果如\n${}\r\\i\\c\\d\\e等
,但不支持支持\t和\b的语法。
config为绘制的配置项目前可以包括如下几项
- left, top在该画布上绘制的左上角像素位置不设置默认为(0,0)。
> 该函数绘制时会将textBaseline设置为'top',因此只需要考虑第一个字的左上角位置。
@ -1772,8 +1802,9 @@ config为绘制的配置项目前可以包括如下几项
- bold是否粗体。如果不设置默认为false。
- align文字对齐方式仅在maxWidth设置时有效默认为'left'。
- fontSize字体大小如果不设置则使用剧情文本设置中的正文字体大小。
- lineHeight绘制的行距值如果不设置则使用fontSize*1.3即1.3行距)。
- lineHeight绘制的行距值如果不设置则使用fontSize*1.3即1.3行距)。
- time打字机效果。若不为0则会逐个字进行绘制并设置core.status.event.interval定时器。
- interval字符间的间距。值表示绘制每个字符之间间隔的距离默认为0。
core.drawTextBox(content, showAll)
@ -1798,7 +1829,7 @@ core.textImage(content, lineHeight)
core.drawChoices(content, choices)
绘制一个选项框。
content可选为选项上方的提示文字支持所有的文字效果如\n${}\r\\i\\c\\d\\e等也支持\t效果
content可选为选项上方的提示文字支持所有的文字效果如\n${}\r\\i\\c\\d\\e等也支持\t。
choices必选为要绘制的选项内容是一个列表。其中的每一项
- 可以是一个字符串,表示选项文字,将使用剧情文本设置中的正文颜色来绘制,仅支持${}表达式计算。
- 或者是一个包含text, color和icon的对象。
@ -1865,7 +1896,7 @@ z值为创建的纵向高度关系到画布之间的覆盖z值高的将
core.ui.relocateCanvas(name, x, y)
重新定位一个自定义画布。x和y为画布的左上角坐标。
重新定位一个自定义画布。x和y为画布的左上角坐标name为画布名
core.ui.resizeCanvas(name, width, height, styleOnly)
@ -1881,21 +1912,22 @@ core.ui.deleteCanvas(name)
core.ui.deleteAllCanvas()
删除所有的自定义画布。
```
------------------------------------ [utils.js] ------------------------------------
## utils.js
utils.js是一个工具函数库里面有各个样板中使用到的工具函数。
```text
core.replayText(text, need, times)
将一段文字中的${}表达式进行替换。need和time一般可以直接忽略。
core.replaceValue(value)
对一个表达式中的特殊规则进行替换如status:xxx等。
请注意此项不会对独立开关如switch:A进行替换。
core.calValue(value, prefix, need, time)
计算一个表达式的值支持status:xxx等的计算。
prefix为前缀switch:xxx的独立开关使用need和time一般可以直接忽略。
@ -2058,6 +2090,7 @@ core.matchWildcard(pattern, string)
core.encodeBase64(str) / core.decodeBase64(str)
将字符串进行base64加密或解密。
可用于解压缩录像数据
core.convertBase(str, fromBase, toBase)
@ -2082,6 +2115,7 @@ num如果设置大于0则生成一个[0, num-1]之间的数;否则生成一
core.readFile(success, error, accept)
读取一个本地文件内容。success和error分别为读取成功或失败的回调函数。
accept如果设置则控制能选择的文件类型。
iOS平台暂不支持读取文件操作。
@ -2141,3 +2175,4 @@ mimeType和responseType如果设置将会覆盖默认值。
lzw_encode(s) / lzw_decode(s)
LZW压缩算法来自https://gist.github.com/revolunet/843889
```