表达式

89次阅读
没有评论

共计 1576 个字符,预计需要花费 4 分钟才能阅读完成。

表达式

在事件中,表达式用于计算总和或从对象中检索信息,例如精灵的 X 坐标。在添加或编辑具有参数的条件或操作时,将表达式输入到“参数”对话框中。同时,还会显示“表达式”字典,提供项目中所有可用的系统和对象表达式的字典。

以下是一些表达式的例子,它们可以从简单的数字到复杂的计算不等:

0
random(360)
Sprite.X
(Player1.X + Player2.X) / 2
Sprite.8Direction.Speed
Sprite.X + cos(Sprite.Angle) Sprite.Speed dt

数字

数字只需作为数字输入,可以有一个可选的小数部分,用点分隔,例如 5 或 -1.2。小数可以以点开头,例如.5。

文本(字符串)

文本在软件开发中也称为字符串,Construct 有时也使用这种命名约定。表达式中的文本应该用双引号括起来,例如 "Hello"

双引号不包括在文本中,因此将文本对象设置为显示表达式 "Hello" 将使其显示 Hello,没有任何双引号。要在字符串中包含一个双引号,请使用两个连续的双引号(""),例如 "He said ""hi"" to me" 将返回 He said "hi" to me。

仅对表达式使用引号。不要在其他位置如属性栏的属性值中使用它们。
您可以使用 & 将混合文本和数字构建为字符串,例如 "Your score is: " & score

要在字符串中添加换行符,请使用系统表达式 newline,例如 "Hello" & newline & "world"

运算符

您可以在表达式中使用以下运算符:

Operator Description

  • 加法
  • 减法
  • 乘法
    / 除法
    % 模(除法后的余数)
    ^ 幂,例如 5 ^ 2 = 25
    & 构建字符串,例如 "Your score is: " & score
    =, <>, <, <=, >, >= 比较运算符,例如 score < 10。如果比较为真则返回 1,否则返回 0。
    ?: 条件运算符,形式为 condition ? result_if_true : result_if_false。允许在表达式中测试条件。如果条件非零则为真,如果为零则为假。例如 score < 0 ? "Game over!" : "Keep going!"
    &, | 当用于数字时,& 是逻辑 AND,| 是逻辑 OR。(注意,如果任一侧是字符串,& 则执行字符串连接。)这些与比较运算符结合使用时很有用,例如 score < 0 | health < 0,如果任一条件为真则返回 1,否则返回 0 表示假。
    注意一个常见的错误是将比较表达式写成 value = 1 | 2,意图是将 value 与 1 或 2 匹配。然而这并不起作用,因为它实际上被评估为 (value = 1) | 2,这总是评估为真。同样,value = (1 | 2) 也不起作用,因为 1 | 2 评估为真,所以它只测试 value 是否为真。正确的测试方法是使用 value = 1 | value = 2。

    对象表达式

    对象有自己的表达式来检索有关对象的信息。这些以 Sprite.X 的形式编写(对象名称,然后是表达式名称)。“表达式”字典列出了项目中所有可用的表达式,它们在手册的参考部分进一步记录。

表达式 Self 可以用作指代当前对象的快捷方式。例如,在 Player 对象的动作中,Self.X 指的是 Player.X。

您可以通过添加基于零的对象索引来获取不同对象实例的表达式。例如,Sprite(0).X 获取第一个精灵实例的 X 位置,Sprite(1).X 获取第二个实例的 X 位置。有关更多信息,请参阅实例中的索引 ID(IID)。您还可以传递另一个表达式作为索引。负数从相反的一端开始,所以 Sprite(-1).X 获取最后一个精灵的 X 位置。

行为表达式

如果对象具有自己的表达式的行为,它们以 Object.Behavior.Expression 的形式书写,例如 Sprite.8Direction.Speed。

系统表达式

内置的系统表达式列在参考中。这些包括一些基本的数学函数,如 sqrt(平方根)。


正文完
 0
评论(没有评论)