|
| 1 | +--- |
| 2 | +title: 角色函数 |
| 3 | +author: |
| 4 | + name: Luomic |
| 5 | + url: https://github.com/leamus |
| 6 | +icon: user |
| 7 | +order: 8 |
| 8 | +--- |
| 9 | + |
| 10 | + |
| 11 | +## 关于角色函数 |
| 12 | + |
| 13 | +* 角色函数包括`创建角色`,`控制角色`,`移除角色`(这里暂且不讨论战斗人物相关函数)。 |
| 14 | +* 为了更好区分主角与npc,鹰歌使用了`hero`与`role`两种函数作为区分。 |
| 15 | +## 创建主角/角色 |
| 16 | + |
| 17 | +以下为创建主角的例子: |
| 18 | + |
| 19 | +```javascript |
| 20 | +game.createhero({RID: "资源ID", $name: "主角名字",$speed:速度}); |
| 21 | +``` |
| 22 | +我们将重要的参数陈列出来: |
| 23 | + |
| 24 | +* **RID**:RID是游戏内部的资源ID,他会引用`角色`一栏的资源,如图,`Role1`,`美奈子`等都是RID |
| 25 | + |
| 26 | +* **$name**:$name(别忘了`$`号)表示角色名称,会显示在一个角色的头顶上(当然也可以不显示每次) |
| 27 | + |
| 28 | + |
| 29 | +* **函数`createhero`,`createrole`参数及其说明**: |
| 30 | +> 无特殊说明,函数前均省略game类。标注默认则表示系统会默认设置该参数 |
| 31 | +
|
| 32 | +| 参数 | 解释 | 类型 | |
| 33 | +| :---- | ---- | ----: | |
| 34 | +| RID | 资源ID | `String` | |
| 35 | +| $name | 角色名称 | `String` | |
| 36 | +| $x | 像素坐标x | `number` | |
| 37 | +| $y | 像素坐标y | `number` | |
| 38 | +| $bx | 地图块坐标x | `number` | |
| 39 | +| $by | 地图块坐标y | `number` | |
| 40 | +| $action | 为0表示暂时静止<br>为1表示随机移动<br>为-1表示禁止移动和操作<br>为2表示定向移动 | `number` | |
| 41 | +| $direction | 面向方向(0、1、2、3分别表示上右下左) | `number` | |
| 42 | +| $showName | 为是否头顶显示名字(默认true) | `Bool` | |
| 43 | +| $id | 用于角色特征识别(默认$name) | `String` | |
| 44 | +| $penetrate | 是否可穿透 | `Bool` | |
| 45 | +| $realSize | 影子大小(默认) | `number` | |
| 46 | +| $start | 表示角色是否自动动作(true或false) | `String` | |
| 47 | + |
| 48 | +## 控制/获取 主角/角色 |
| 49 | + |
| 50 | +来看一个示例,它展示如何修改和获取角色属性: |
| 51 | + |
| 52 | +```javascript |
| 53 | +//让主角移动到(10,10) |
| 54 | +game.hero(0,{$targetBx:10,$targetBy:10}); |
| 55 | +//获取id为npc的角色属性 |
| 56 | +var npc = game.role(`npc`); |
| 57 | +//获取地图坐标x |
| 58 | +var npcX = npc.$bx; |
| 59 | +``` |
| 60 | + |
| 61 | +* **函数`hero`,`role`参数及其说明**: |
| 62 | + |
| 63 | +* 第一个参数: |
| 64 | + |
| 65 | +| 参数 | 解释 | 类型 | |
| 66 | +| :---- | ---- | ----: | |
| 67 | +| $id | 从id获取属性<br>为0表示主角 | `String` | |
| 68 | + |
| 69 | +* 内部参数: |
| 70 | + |
| 71 | +| 参数 | 解释 | 类型 | |
| 72 | +| :---- | ---- | ----: | |
| 73 | +| $x | 像素坐标x | `number` | |
| 74 | +| $y | 像素坐标y | `number` | |
| 75 | +| $bx | 地图块坐标x | `number` | |
| 76 | +| $by | 地图块坐标y | `number` | |
| 77 | +| $targetBx | 定向移动地图块坐标x | `number` | |
| 78 | +| $targetBy | 定向移动地图块坐标y | `number` | |
| 79 | +| $$nActionType | 角色是否运动<br>10为正在运动 | `number` | |
| 80 | +| $targetX | 定向移动像素坐标x | `number` | |
| 81 | +| $targetY | 定向移动像素坐标y | `number` | |
| 82 | +| $action | 为0表示暂时静止<br>为1表示随机移动<br>为-1表示禁止移动和操作<br>为2表示定向移动 | `number` | |
| 83 | +| $direction | 面向方向(0、1、2、3分别表示上右下左) | `number` | |
| 84 | +| $showName | 为是否头顶显示名字 | `Bool` | |
| 85 | +| $realSize | 影子大小 | `number` | |
| 86 | +| $start | 表示角色是否自动动作(true或false) | `String` | |
| 87 | + |
| 88 | +* **删除主角/角色** |
| 89 | +这个非常简单,不多赘述 |
| 90 | + |
| 91 | +```javascript |
| 92 | +game.delrole(0); //0表示主角 |
| 93 | +game.delrole(`npc`); |
| 94 | +``` |
| 95 | + |
| 96 | +| 参数 | 解释 | 类型 | |
| 97 | +| :---- | ---- | ----: | |
| 98 | +| $id | 填入删除角色的id | `String` | |
| 99 | + |
| 100 | +## 练习 |
| 101 | + |
| 102 | +制作一个游戏,包括: |
| 103 | + |
| 104 | +* 创建主角“鹰歌” |
| 105 | + |
| 106 | +* 创建NPC“小明” |
| 107 | + |
| 108 | +`main.js`参考代码 |
| 109 | + |
| 110 | +```javascript |
| 111 | +//游戏开始脚本(开始时调用) |
| 112 | +function *$start() { |
| 113 | + game.loadmap('填入你的地图名'); |
| 114 | + |
| 115 | + //下面是练习内容 |
| 116 | + ... |
| 117 | +} |
| 118 | +``` |
| 119 | + |
| 120 | +人物函数用法是不是很简单呢?接下来我们学习地图类函数! |
0 commit comments