32 设置变量计算和判断
用可变数据进行运算变量
变量,顾名思义可以简单理解为可变的量,类似于数学中的用字母表示量,可参加一定的运算。如果你学过Python、C++等高级语言,那么恭喜你,节奏医生中变量的表达与之接近;如果没有学过也无需顾虑,本节向大家介绍变量的使用。
变量分为两种,只读变量和可写变量。
只读变量
只读变量多表示游戏中的即时参数,提供有关游戏当前状态的信息。它们的值随游戏进行可以发生变化,但是不可人为修改。下面提供了只读变量的变量名及其有关定义:
变量名 | 定义 |
---|---|
bpm | 当前的bpm |
barNumber | 当前所在的小节编号 |
numEarlyHits | 目前过早按拍的次数 |
numLateHits | 目前过晚按拍的次数 |
numPerfectHits | 目前完美按拍的次数 |
numMisses | 目前错过拍子的次数(不考虑错误权重) |
numMistakes | 目前错过拍子的次数(考虑错误权重) |
XPress | 当X被按下的瞬间值为true,其余时刻为false |
XRelease | 当X被松开的瞬间值为true,其余时刻为false |
XIsPressed | 当X被按下时值为true,否则为false |
特别地,上表中后三行变量名中的X特指按键名,使用时将X替换为对应的按键名,分别为p1(玩家1)、p2(玩家2)、anyPlayer(任意玩家)、up(上)、down(下)、left(左)、right(右)。
可写变量
可写变量与只读变量类似,其参数可以随游戏进程变化,与只读变量不同的是,可写变量的值可人为更改。可写变量大致可分为三类:
- 整型(int):整型变量可以存储整数,变量名写作i0、i1、…、i9。
- 浮点型(float):浮点型变量可以存储浮点数(也就是小数。特别地,形如1.0的值为浮点数),变量名写作f0、f1、…、f9。
- 布尔型(boolean):布尔型变量可以存储布尔值。布尔值包含且仅包含True(真)和False(伪)。布尔型变量名写作b0、b1、…、b9。
需要注意的是上述三类变量,每类有且仅有所列举的10个,且无法修改变量名。一般地,整形变量的值属于区间[-2147483648, 2147483647],而浮点型变量取值范围相对广泛。
特别地,存在一额外的整型变量,写作buttonPressCount,用法与一般整型变量相同,区别在于该变量的值在玩家按键时自动+1。
变量的运算、比较与使用
变量的运算需要使用运算符,运算符可分为三类,分别为赋值运算符、算术运算符、比较运算符。语法如下表:
表达式 | 含义 |
---|---|
++ | 值+1 |
-- | 值-1 |
= | 赋值为 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 模 |
== | 相等 |
!= | 不等 |
< | 小于 |
> | 大于 |
变量可以在调用自定义方法;浮动文字、显示对话、显示状态牌;条件中使用。
- 调用自定义方法 可以在调用自定义方法的表达式框里对变量进行读写、赋值,可使用赋值运算符。 例如:i1++(使i1的值+1),i4=4(将i4的值赋为4)
- 浮动文字、显示对话、显示状态牌 变量可以嵌入到这些事件的显示内容中,使用时将表达式用大括号包裹起来,可使用算数运算符连接。 例如:“武士有{i0}个朋友,洛根比武士多{i1}个朋友,所以洛根有{i0+i1}个朋友。”这句话在i0==4且i1==6时输出为“武士有4个朋友,洛根比武士多6个朋友,所以洛根有10个朋友。”
- 条件 变量可用于自定义类型条件的表达式框中。通常与比较运算符结合使用。 例如:i0==10(i0等于10)、i5<i0(i5小于i0)