Skip to content

Commit 99179b3

Browse files
authored
Merge pull request #4 from TASA-Ed/test
新增角色函数相关内容
2 parents 4aaf2d6 + 1fbc162 commit 99179b3

File tree

4 files changed

+124
-2
lines changed

4 files changed

+124
-2
lines changed

docs/src/start/advanced/JavaScript简易教程.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ if(game.gd["事件1"]) {
8080
`角色1['攻击'] //会返回100`
8181
`角色1.name = '大鬼' //重新设置`
8282

83-
null:只有一个值,一般用的少
83+
`null`:只有一个值,一般用的少
8484

85-
undefined:没有赋值变量 和 没有定义的数组下标值、对象key 都是 undefined。
85+
`undefined`:没有赋值变量 和 没有定义的数组下标值、对象key 都是 undefined。
8686
比如:
8787

8888
```javascript
@@ -180,3 +180,5 @@ undefined:没有赋值变量 和 没有定义的数组下标值、对象key
180180
因为+号既是运算符,也是字符串拼接符,所以规定:+号两面如果有一个是字符串,则就会进行字符串拼接(另一个也会转换为字符串),如果需要作为运算,则必须将字符串转换为数字:用parseInt或parseFloat括住即可:
181181
parseInt('1') + 1 //2
182182
因为-、*、/、% 号只是运算符,出现字符串时引擎会尝试将字符串自动转换为数字来运算。
183+
184+
现在您可以去`鹰歌`试试`JavaScript`
17.9 KB
Loading
36.8 KB
Loading
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
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+
![角色id](image/jueseid.png)
26+
* **$name**:$name(别忘了`$`号)表示角色名称,会显示在一个角色的头顶上(当然也可以不显示每次)
27+
![角色id](image/juesename.png)
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

Comments
 (0)