什么是表达式

在唤境中,表达式用于计算数值或从对象中获取信息,例如从精灵图中获取x坐标。在添加或编辑具有可输入参数的条件和动作时,可以在参数输入窗口输入表达式。

通过点击输入窗口右侧的按钮,可以查看目前所有可使用的表达式

所有的表达式,最终会返回一个值,根据表达式的类型不同,获得的值可以是数字,也可以是字符串。如下所示:

  • 0
  • random(0,100)
  • 精灵.X
  • (精灵1.x-精灵2.x)/2
  • 鼠标操作.x
  • 全局变量1+全局变量2

数字

数字也是一种简单的表达式。 输入一个数字,返回的就是他自身,例如:102.5
下图的动作会将number的值设置为20

文本(字符串)

字符串在表达式中,用英文双引号括起来,例如:“Hello World”
双引号自身并不包含在文本中,因此,如果设置一个值为"Hello World",实际显示为 Hello World
两个字符串可以通过运算符 & 相连接,例如: "Hello " & “World”。

运算符

运算符用于对多个值进行计算。多种运算符同时出现时会有不同的计算优先级。 详细的优先级可参考编程语言中的运算符优先级。

运算符 描述
+ 两个数字进行加法运算
- 两个数字进行减法运算
* 两个数字进行乘法运算
/ 两个数字进行除法运算
% 取除法后的余数
^ 乘方
& 字符串连接(也可以字符串和数字连接,返回值同样为字符串,例如:“Hello” & 20 )
=,<,>,<=,>=,!= 比较运算符。 如果满足条件,返回1,不满足返回0。 例如:20>100 返回0,30<50 返回1
?: 条件运算符。 结构为条件?满足时返回值:不满足时返回值 例如: 20<30?“A”:“B”, 返回A,因为20<30,条件满足。
&,| 当&和|用于数字之间的比较时,&代表逻辑与,|代表逻辑或。(注意,如果使用&时,任何一方的值是字符串,将&将当做字符串连接处理) 与比较运算符相结合使用。条件A&条件B 代表当条件A和B都满足时,返回1,否则返回0。 条件A|条件B 代表条件A和条件B任何一条满足时,就返回1,都不满足返回0。 例如: 1<2&1>3 返回0          1<2|1>3 返回1

对象表达式

每个对象都拥有自己的表达式来获取有关对象的信息。 例如:精灵1.x用于获取精灵1的x坐标。表达式同样受到条件筛选的影响,如果条件只选中了一个精灵1实例,那么该事件中,精灵1的表达式只会获取该实例的信息。
表达式self,可以用做快捷方式来引用当前对象。 例如,在精灵1对象的动作中使用表达式,self.x等同于精灵1.x
更多组件的表达式可以参阅组件大全

##能力表达式
对象中的能力也同样拥有自己的表达式,更多能力的概念可以参阅能力大全

系统表达式

引擎内置了一些表达式,包含数学运算的abs(绝对值),str(转化为文本)等,更多系统表达式可以参阅通用表达式