Genscript文档-变量命令

编程语言其它GenscriptUnityGodot游戏开发GalgameGensou视觉小说框架
2024-11-02 - 16:58
fang_chu
2024-11-02 - 16:58

变量命令

概述

变量是可以变动的数值,在游戏中一般用来储存随游戏进程变动的数值,如金钱、生命值、时间等

变量有不同的类型,不同类型的变量有不同的作用

在Genscript中变量有四种类型:字符串、整数、浮点数和布尔

  • 字符串
    字符串类型是Genscript中所有变量的默认类型,一般用来储存文本信息:你好1+1的结果是2
    就算是数字,作为字符串变量的值也是文本而不是实际的数值

  • 整数
    整数类型是数值变量的一种,一般用来储存是整数的游戏数值,比如金钱、物品数量、时间等
    在Genscript中,整数值的范围是-9223372036854775808 ~ 9223372036854775807 (包含首尾),超过这个范围的整数类型值将会转变为浮点数类型

  • 浮点数
    浮点数类型是数值变量的一种,也就是小数,一般用来储存数值极大且需要使用小数点或百分比的值,比如生命值、移动速度等
    在Genscript中,浮点数的范围非常大,但在Genscript的环境下不会用到那么大的值

  • 布尔
    布尔是一个特殊的变量类型,一般用于条件判断中,它只有两种值:falsetrue
    false代表假,true代表真

语法

详解

-[变量名]

该命令将声明变量,但不进行初始化。

如果不进行初始化,变量的默认类型是字符串,并且它的值是空的。

命名规范

不能声明同名的变量且变量名需遵循以下规范:

  • 不能以下划线以外的符号开头:+varname(无效变量名)

  • 不能以数字开头:1varname(无效变量名)

  • 变量名只能以文字(英文字母、汉字等)或下划线开头:_varname变量(有效变量名)

  • 变量名除去开头只能包含文字(英文字母、汉字等),下划线和数字:_变量1var_1チルノ9バカ(有效变量名)

  • 变量名不能是用于表示其他命令的关键字和布尔值:trueFalseTuRewhen(无效变量名)

关键字大小写敏感,一般是全小写,布尔值则不区分大小写


什么是初始化?

初始化是在创建变量时为其赋予一个初始值,这样可以明确变量的类型和用途。


-[变量名]=[值]

该命令将值赋给变量,可以用来修改变量的值,也可以进行变量声明并初始化,这个值也可以是一个变量

-a=0    |:声明变量a,并将其初始化为0
-b=a    |:声明变量b,并将其初始化为a的值(0)
-c="c"  |:声明变量c,并将其初始化为字符串c
-b=c    |:将c的值赋给b,此时b的值将是字符串c
-@{b}   |:输出b的值,控制台将会打印:c

变量可以自动转换类型

变量的声明不需要指定类型,变量在进行赋值时会自动转换其类型:

-string="string"         |:声明字符串类型变量
-integer=0               |:声明整数类型变量
-floating_point=0.0      |:声明浮点数类型变量
-boolean=true            |:声明布尔类型变量
-boolean=string          |:将变量string的值赋给boolean,此时boolean的类型为字符串
-floating_point=integer  |:将变量integer的值赋给floating_point,此时floating_point的类型为整数
-string=false            |:将变量string的值更改为false,此时string的类型为布尔
-integer=1.0             |:将变量integer的值更改为1.0,此时integer的类型为浮点数

字符串赋值使用双引号不是必要的

对于变量赋值,Genscript有一个语法糖:

如果你尝试将不存在的变量赋值给另一个变量,那么另一个变量的值将会变成所指定的变量名,其类型是字符串

这意味着可以不使用双引号来进行字符串赋值和变量初始化

以下赋值操作都是合法的:

-a=a     |:变量a的值将会是字符串a
-b=c     |:变量b的值将会是字符串c
-c={a}   |:变量c的值将会是字符串{a}
-d=""d"" |:变量d的值将会是字符串"d"(包含双引号的d)

-[变量名]=[合法数学表达式]

该命令可以将表达式的运算结果赋值给变量,且自动转换类型:

-a=10   |:整数类型10
-b=5.5  |:浮点数类型5.5
-c=a+b  |:浮点数类型15.5
-a=b-c  |:整数类型-10

什么是数学表达式?

数学表达式是用以数值计算的公式,例如1+110*510*(90-80)

Genscript中的数学表达式支持五种运算符:

  • +(加)
  • -(减)
  • *(乘)
  • /(除)
  • %(取模/求余)

表达式中可以包含数值变量但必须是已声明且有值的变量,否则会出现错误。用于表达式计算的变量类型只能是整数浮点数

你可以将表达式用引号包裹起来("c+b")将其变为字符串而不是计算它,虽然不怎么用得到


整数溢出自动转换

对于表达式计算,Genscript有一个语法糖:

如果你尝试将超过整数类型范围的值赋给整数变量,那么它会自动转变为浮点数类型变量

数值范围

  • 整数类型:-9223372036854775808 ~ 9223372036854775807 (包含首尾)

  • 浮点数类型:-1.79769313486237E+308 ~ 1.79769313486237E+308 (包含首尾)

因为浮点数类型的范围很大(最大约17976931348623157后308个0),绝大多数情况下不会发生数据溢出。

然而,Genscript不能也不需要使用科学计数法对变量赋值,并且大数据处理对Genscript来说是不需要的

话题状态:正常
571 × 2024-11-07 - 08:35
kohaku