# 附录:API列表 所有系统支持的API都列在了这里。可能被做塔时自定义JS脚本中涉及到的以红色字体标出,并有着详细的解释。 可以在chrome浏览器的控制台中(`ctrl+shift+I`,找到Console)中直接进行调用,以查看效果。 !> `core.js`:系统核心文件。所有核心逻辑处理都在此文件完成。 ``` js core.status.floorId //获得当前层floorId core.status.thisMap //获得当前层的地图信息 //------ 初始化部分 ------ core.init //初始化 core.showStartAnimate //显示开始界面 core.hideStartAnimate //隐藏开始界面 core.setStartProgressVal //设置加载进度条进度 core.setStartLoadTipText //设置加载进度条提示文字 core.loader //加载图片和音频 core.loadImage //加载图片 core.loadSound //加载音频 core.loadSoundItem //加载某一个音频 core.isPlaying //游戏是否已经开始 core.clearStatus //清除游戏状态和数据 core.resetStatus //重置游戏状态和初始数据 core.startGame //具体开始游戏 core.restart //重新开始游戏;此函数将回到标题页面 //------ 键盘、鼠标事件 ------ core.onKeyDown //按下某个键时 core.onKeyUp //放开某个键时 core.pressKey //按住某个键不动时 core.keyDown //根据按下键的code来执行一系列操作 core.keyUp //根据放开键的code来执行一系列操作 core.ondown //点击(触摸)事件按下时 core.onmove //当在触摸屏上滑动时 core.onup //当点击(触摸)事件放开时 core.getClickLoc //获得点击事件相对左上角的坐标(0到12之间) core.onclick //具体点击屏幕上(x,y)点时,执行的操作 core.onmousewheel //滑动鼠标滚轮时的操作(楼层传送时可用滚轮切换楼层) //------ 自动寻路代码相关 ------ core.clearAutomaticRouteNode //清除自动寻路路线 core.stopAutomaticRoute //停止自动寻路操作 core.continueAutomaticRoute //继续剩下的自动寻路操作 core.clearContinueAutomaticRoute //清除剩下的自动寻路列表 core.setAutomaticRoute //设置一个自动寻路 core.automaticRoute //自动寻路算法,找寻最优路径 core.fillPosWithPoint //显示离散的寻路点 core.clearStepPostfix //清除已经寻路过的部分 //------ 自动行走,行走控制 ------ core.stopAutoHeroMove //停止勇士的自动行走 core.setAutoHeroMove //设置勇士的自动行走路线 core.autoHeroMove //让勇士开始自动行走 core.setHeroMoveInterval //设置行走的效果动画 core.setHeroMoveTriggerInterval //设置勇士行走过程中对途经事件的触发检测 core.turnHero(direction) //设置勇士的方向(转向);如果指定了direction则会面向该方向,否则执行一个转向操作。 core.moveHero //让勇士开始移动 core.moveOneStep //每移动一格后执行的事件。中毒时在这里进行扣血判断。 core.waitHeroToStop(callback) //停止勇士的一切行动,等待勇士行动结束后,再执行callback回调函数。 core.stopHero //停止勇士的移动状态。 core.drawHero //在hero层绘制勇士。 core.setHeroLoc(name, value) //设置勇士的位置。name为”direction”,”x”,”y” core.getHeroLoc(name) //获得勇士的位置。 core.nextX //获得勇士面对位置的x坐标 core.nextY //获得勇士面对位置的y坐标 //------ 地图和事件处理 ------ core.openDoor(id, x, y, needKey, callback) //打开一扇位于 (x,y) 的门 core.battle(id, x, y, force, callback) //进行战斗;force表示是否强制战斗 core.trigger(x,y) //触发x,y点的事件 core.changeFloor(floorId, stair, heroLoc, time, callback) //楼层切换floorId为目标楼层Id,stair可指定为上/下楼梯,time动画时间 core.mapChangeAnimate //实际切换的动画效果 core.clearMap //清除地图显示 core.fillText //在某个canvas上绘制一段文字 core.fillRect //在某个canvas上绘制一个矩形 core.strokeRect //在某个canvas上绘制一个矩形的边框 core.setFont //设置某个canvas的文字字体 core.setLineWidth //设置某个canvas的线宽度 core.saveCanvas //保存某个canvas状态 core.loadCanvas //读取某个canvas状态 core.setStrokeStyle //设置某个canvas边框属性 core.setAlpha //设置某个canvas的alpha值 core.setOpacity //设置某个canvas的透明度 core.setFillStyle //设置某个canvas的绘制属性(如颜色等) core.drawMap(mapId, callback) //绘制某张地图。mapId为地图Id,绘制完毕将执行callback回调函数。 core.noPassExists(x,y) //某个点是否不可通行 core.noPass //某个点是否在区域内且不可通行 core.npcExists(x,y) //某个点是否存在NPC core.terrainExists(x,y) //某个点是否存在指定的地形 core.stairExists(x,y) //某个点是否存在楼梯 core.nearStair //当前位置是否在楼梯边 core.enemyExists(x,y) //某个点是否存在怪物 core.getBlock(x, y, floorId, needEnable) // 获得某个点的block。floorId指定目标楼层,needEnable如果为false则即使该点的事件处于禁用状态也将被返回(否则只有事件启用的点才被返回) core.moveBlock //显示移动某块的动画,达到{“type”:”move”}的效果 core.animateBlock //显示/隐藏某个块时的动画效果 core.addBlock //将某个块从禁用变成启用状态 core.removeBlock //将某个块从启用变成禁用状态 core.removeBlockById //根据block的索引删除该块 core.removeBlockByIds //一次性删除多个block core.addGlobalAnimate //添加一个全局动画 core.removeGlobalAnimate //删除一个或所有全局动画 core.setGlobalAnimate //设置全局动画的显示效果 core.setBoxAnimate //显示UI层某个box的动画(如怪物手册中怪物的动画) core.drawBoxAnimate // 绘制UI层的box动画 core.updateFg() //更新全地图的显伤 core.itemCount //获得某个物品的个数 core.hasItem //是否存在某个物品 core.setItem //设置某个物品的个数 core.removeItem //删除某个物品 core.useItem // 使用某个物品;直接调用items.js中的useItem函数。 core.canUseItem //能否使用某个物品。直接调用items.js中的canUseItem函数。 core.addItem //增加某个物品的个数 core.getItem //获得某个物品时的事件 core.drawTip //左上角绘制一段提示 core.drawText //地图中间绘制一段文字 //------ 系统机制 ------ core.replaceText //将文字中的${和}(表达式)进行替换 core.calValue //计算表达式的值 core.unshift //向某个数组前插入另一个数组或元素 core.setLocalStorage //设置本地存储 core.getLocalStorage //获得本地存储 core.removeLocalStorage //移除本地存储 core.clone //复制一个对象 core.formatDate //格式化时间为字符串 core.setTwoDigits //两位数显示 core.win //获胜;将直接调用events.js中的win函数 core.lose //失败;将直接调用events.js中的lose函数 core.debug //进入Debug模式,攻防血和钥匙都调成很高的数值 core.checkStatus //判断当前能否进入某个事件 core.openBook //点击怪物手册时的打开操作 core.useFly //点击楼层传送器时的打开操作 core.openToolbox //点击工具栏时的打开操作 core.save //点击保存按钮时的打开操作 core.load //点击读取按钮时的打开操作 core.doSL //实际进行存读档事件 core.syncSave //存档同步操作 core.saveData //存档到本地 core.loadData //从本地读档 core.setStatus //设置勇士属性 core.getStatus //获得勇士属性 core.setFlag //设置某个自定义变量或flag core.getFlag //获得某个自定义变量或flag core.hasFlag //是否存在某个自定义变量或flag,且值为true core.insertAction //往当前事件列表之前插入一系列事件 core.lockControl //锁定状态栏,常常用于事件处理 core.unlockControl //解锁状态栏 core.isset //判断某对象是否不为undefined也不会null core.playSound //播放音频 core.playBgm //播放背景音乐 core.changeSoundStatus //切换声音状态 core.enableSound //启用音效 core.disableSound //禁用音效 core.show //动画显示某对象 core.hide //动画使某对象消失 core.clearStatusBar //清空状态栏 core.updateStatusBar //更新状态栏 core.resize //屏幕分辨率改变后重新自适应 core.resetSize //屏幕分辨率改变后重新自适应 //------ core.js 结束 ------ ``` !> `data.js` 定义了一些初始化的数据信息。 !> `enemys.js` 定义了怪物信息。 ``` js core.enemys.getSpecialText //获得特殊属性的文字 core.enemys.getDamage //获得某个怪物的伤害 core.enemys.getCritical //计算某个怪物的临界值 core.enemys.getCriticalDamage //计算某个怪物的临界减伤 core.enemys.getDefDamage //计算某个怪物的1防减伤 core.enemys.calDamage //实际的伤害计算公式 core.enemys.getCurrentEnemys //获得当前层剩下的的怪物列表 ``` !> `events.js` 定义了各个事件的处理流程。 ``` js core.events.startGame //开始游戏 core.events.win //获胜 core.events.lose //失败 core.events.checkBlock //检查领域、夹击事件 core.events.afterChangeFloor //楼层切换结束时的事件 core.events.doEvents //开始执行一系列自定义事件 core.events.doAction //执行当前自定义事件列表中的下一个事件 core.events.insertAction //往当前自定义事件列表前插入若干个事件 core.events.openShop //打开一个全局商店 core.events.disableQuickShop //禁用一个快捷商店 core.events.canUseQuickShop //当前能否使用快捷商店 core.events.useItem //尝试使用道具 core.events.afterBattle //战斗结束后触发的事件 core.events.afterOpenDoor //开一个门后触发的事件 core.events.passNet //经过一个路障 core.events.beforeSaveData //即将存档前可以执行的操作 core.events.afterLoadData //读档后,载入事件前可以执行的操作 //------ 界面上的点击事件 ------ core.events.clickAction //自定义事件处理时,对用户点击的处理 core.events.clickBook //怪物手册打开时,对用户点击的处理 core.events.clickFly //楼层传送器打开时,对用户点击的处理 core.events.clickShop //全局商店打开时,对用户点击的处理 core.events.clickQuickShop //快捷商店选项打开时 core.events.clickToolbox //工具栏打开时 core.events.clickSL //存/读档界面打开时 core.events.clickSettings //设置页面打开时 ``` !> `maps.js` 定义了地图,以及每个数字所代表的意义。 ``` js core.maps.loadFloor //加载某个楼层(从剧本或存档中) core.maps.getBlock //将数字替换成实际的内容 core.maps.addEvent //向该楼层添加剧本的自定义事件 core.maps.addChangeFloor //向该楼层添加剧本的楼层转换事件 core.maps.initMaps //初始化所有地图 core.maps.save //将当前地图重新变成数字,以便于存档 core.maps.load //将存档中的地图信息重新读取出来 ``` !> `ui.js` 定义了各种界面的绘制。 ``` js core.ui.closePanel //结束一切事件和绘制,关闭UI窗口,返回游戏进程 core.ui.drawTextBox //绘制一个对话框 core.ui.drawChoices //绘制一个选项界面 core.ui.drawConfirmBox //绘制一个确认/取消的警告页面 core.ui.drawSettings //绘制系统菜单栏 core.ui.drawQuickShop //绘制快捷商店选择栏 core.ui.drawWaiting //绘制一个“请稍后”页面 core.ui.drawSyncSave //绘制存档同步选项 core.ui.drawPagination //绘制分页 core.ui.drawEnemyBook //绘制怪物手册 core.ui.drawFly //绘制楼层传送器 core.ui.drawToolbox //绘制道具栏 core.ui.drawSLPanel //绘制存档/读档界面 core.ui.drawThumbnail //绘制一个缩略图 core.ui.drawAbout //绘制“关于”界面 ```