mirror of
https://github.com/motajs/template.git
synced 2026-10-21 06:40:16 +08:00
1.5 KiB
1.5 KiB
勇士位置
很多逻辑都要先知道一件事:勇士此刻站在哪一层、哪一格、朝哪个方向。比如「进门前朝向对不对」「这只怪离勇士多远」「当前在哪一层」。勇士位置(state.hero.location)记录的就是这些信息。本篇只讲如何获取它们;如何移动、如何切换楼层属于更底层的内容,留到高级教程。
当前坐标
勇士站在哪一格,读 x、y 即可:
const x = state.hero.location.x;
const y = state.hero.location.y;
x、y 为勇士当前的横、纵坐标。
当前朝向
朝向通过 getCurrentFaceDirection() 获取,返回 FaceDirection(Left、Up、Right、Down 等):
const dir = state.hero.location.getCurrentFaceDirection();
如果坐标和朝向要一起用,state.hero.getLocation() 会返回一个包含 x、y、direction 的位置对象(IFacedTileLocator),一次取走更省事:
const loc = state.hero.getLocation();
// loc.x、loc.y、loc.direction
当前楼层
勇士所在的楼层通过 floorId 与 map 获取:
floorId:当前楼层 id,undefined表示不处于任何楼层;map:当前楼层对象(IGameMap),null表示不处于任何楼层。
const floorId = state.hero.location.floorId;
const map = state.hero.location.map;