当前位置: 首页 > news >正文

Godot学习笔记2——GDScript变量与函数

Godot使用的编程语言是GDS,语法上与python有些类似。

一、代码编写界面

在新建的Godot项目中,点击“创建根节点”中的“其他节点”,选择“Node”。

点击场景界面右上角的绿色加号,路径处重新命名,模板选择“Empty”,即可进入代码编写界面。

二、变量 

在GDS中,我们使用“var”来定义一个变量。变量的命名规则与大多数语言一致,必须以字母、下划线开头,组成变量名的只能有字母、数字、下划线。

如果违反了变量命名规则,编译器会在代码编写区域的底部发出错误提示:

 

需要注意的是,变量之间的计算与转换只能在函数体内部进行,如果在外部,则会报错:

 

不同的变量分属不同的节点,在计算使用时需要强调是属于谁的变量。像这里我们的变量前应该有一个“self.”来表示这是节点自己的变量,但“self.”一般可以省略,所以并不是我们这里没有指定变量所属。 

 三、函数

在GDS中,我们使用“func”来定义一个函数:

 在这里,“_enter_tree()”是一个特殊的函数,它会在节点进入场景树时被自动调用。

我们可以在代码编写框的右上角点击“搜索帮助”,输入“_enter_tree”,即可查看文档中对改函数的介绍:

一般来讲,GDS中由系统自带的函数都具有与之相同的命名方式,即下划线开头。

在上述代码中,冒号后面的内容拥有了一个缩进,也就是一个"tab“键的长度。拥有同一级缩进的代码块将被视为在同一级。同时,GDS对代码的缩进非常敏感,少一个空格或多一个空格都是会报错的,这点与python非常像:

 

缩进错误

 在函数体中,我们首先使用了“print”函数,此函数也是提前封装好的,我们将鼠标移动到“print”处右键,选择“查找符号”,即可看到对该函数的介绍:

函数体最后一行“pass”,代表函数从这一行结束,一般函数的最后都要加这一句代码。 

此时,点击引擎右上角的开始按钮,即可看到控制台输出了变量“a”所代表的值1:

 

四、变量的类型 

在 GDS中,变量有四种类型,分别是:

  • int 整型
  • float 浮点型
  • string 字符串型
  • bool 布尔型

我们在GDS中定义了如下四种变量:

 

在GDS中,给变量赋值通常不需要先声明变量类型,系统会自动识别变量类型并进行动态更改。 

需要注意的是,字符串类型变量赋值的时候需要把字符串两边用双引号括起来,布尔型变量只有两个值:“true”或者“false”。 

在下方函数中,我们执行了一行把c的值赋值给a的代码,如果是在C语言环境下,运行会报错,但我们在Godot中运行看一下结果:

 

可以看到,“print”打印的是“Hello”,证明在GDS中变量并没有严格的类型界定。

我们也可以手动锁死每个变量的类型,只需在变量赋值时在等号前面加冒号和变量类型即可:

 

可以看到,此时函数体中出现了报错,说明a和c的类型已经被强制界定了。

http://www.lryc.cn/news/402985.html

相关文章:

  • golang开发环境搭建与踩坑记录
  • 单机、集群、分布式服务器比较:
  • NoSql选择题解
  • 国内新能源汽车芯片自给,承认差距,任重道远
  • 反爬虫策略中的IP地址轮换如何实现?挑战与对策
  • AUTOSAR CAN网络Bus Load Reduction Mechanism
  • 【LeetCode力扣】007. 整数反转(Python)
  • 大数据之写入Doris数据问题
  • HTML+echarts.js实现的炫酷金色风格可视化组件
  • 【BUG】已解决: KeyboardInterrupt
  • iOS——MRC与ARC以及自动释放池深入底层学习
  • OpenCV教程:cv2如何把两张图片的大小,设置成相同的宽高
  • web前端 Vue 框架面试120题(五)
  • CV12_ONNX转RKNN模型(谛听盒子)
  • k8s集群创建devops项目一直等待状态,没有发现host
  • chatglm2-6b-prompt尝试
  • vite+vue3项目初始化搭建
  • 使用 Vue3、Node.js、MySQL、Electron 和 Express 实现用户登录、文章管理和截屏功能
  • django中日志模块logging的配置和使用
  • pyqt/pyside QTableWidget失去焦点后,选中的行仍高亮的显示
  • 函数定义、合约与面向对象(以太坊solidity合约)
  • 微服务:nacos
  • 前端css常用笔记
  • WINUI或WPF灵活使用样式、控件模板、自定义控件、用户控件
  • 如何用EXCEL自动解方程/方程组?利用 矩阵乘法X=A-*B,X=mmult(minverse(A), B)
  • ComfyUI进阶:Comfyroll插件 (二)
  • Spring Boot集成Activity7实现简单的审批流
  • 自动驾驶,革了谁的命
  • 在线实习项目|泰迪智能科技企业级项目学习,暑期大数据人工智能学习
  • 【BUG】已解决:To update, run: python.exe -m pip install --upgrade pip