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的类型已经被强制界定了。
相关文章:
Godot学习笔记2——GDScript变量与函数
Godot使用的编程语言是GDS,语法上与python有些类似。 一、代码编写界面 在新建的Godot项目中,点击“创建根节点”中的“其他节点”,选择“Node”。 点击场景界面右上角的绿色加号,路径处重新命名,模板选择“Empty”&…...
golang开发环境搭建与踩坑记录
文章目录 一、安装下载1、go环境2、ide 二、基本使用1、运行2、结构体与方法函数指针3、闭包4、指针5、map6、接口7、异常 三、包管理1、go mod语法2、项目下载所有依赖 一、安装下载 1、go环境 下载地址:https://go.dev/dl/ 或者:https://golang.goog…...
单机、集群、分布式服务器比较:
1. 单机服务器的瓶颈: 单机服务器:一台服务器独立运行一个工程所需的全部的业务模块 受限于服务器硬件资源,所承受用户并发量受限,32位linux操作系统最大并发量为两万任一模块的变动和修改,都会导致整个项目代码重新编…...
NoSql选择题解
1. (单选题)以下不属于ACID原则的是( )。 A. 相对性 B. 原子性 C. 隔离性 D. 持久性 正确答案: A :相对性; 2. (单选题)以下NoSQL数据库中,哪个是内存数据库()。 A. Bigtable B. Redis C. Hbase D. MongoDB 正确答案: B :Redis; …...
国内新能源汽车芯片自给,承认差距,任重道远
【科技明说 | 科技热点关注】 据近日工信部电子五所元器件与材料研究院高级副院长罗道军表示,中国拥有最大的新能源车产能,芯片用量也是越来越多。但是芯片的自给率目前不到10%,是结构性的短缺。 中国拥有最大新能源车产能&#…...
反爬虫策略中的IP地址轮换如何实现?挑战与对策
当今互联网时代,各类网站、网络平台背后隐藏着大量数据,广告数据收集、市场数据收集都需要依托爬虫技术,但很多网站通过反爬虫技术限制或屏蔽爬虫的访问,这给数据收集带来不小的挑战。 为了规避这些反爬虫策略,开发人…...
AUTOSAR CAN网络Bus Load Reduction Mechanism
1. Bus Load Reduction Mechanism有什么用 根据AUTOSAR CanNM规范,NM PDU的发送周期由参数CanNmMsgCycleTime决定,并且属于同一个网络簇的所有NM节点该参数必须相同。如果不采取任何行动,这将导致总线负载问题,这取决于网络管理集群成员的数量。即使通过节点特定的定时参数…...
【LeetCode力扣】007. 整数反转(Python)
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 输入…...
大数据之写入Doris数据问题
1. 解决Key columns should be a ordered prefix of the schema. KeyColumns[1] (starts from zero) is xxx, but 背景 create table if not exists XXX ( fathercorp varchar(50), id decimalv3(38,0) ) ENGINEOLAP UNIQUE KEY(id) COMMENT xxxx DISTRIBUTED BY HASH(id) BUC…...
HTML+echarts.js实现的炫酷金色风格可视化组件
模板下载地址: 炫酷金色风格可视化组件 (bootstrapmb.com)https://www.bootstrapmb.com/item/14888 一款炫酷金色风格可视化组件,统计图表使用Echarts.js,整体风格采用金黄色看起来很大气,设计是通用型的,可以用作任…...
【BUG】已解决: KeyboardInterrupt
已解决: KeyboardInterrupt 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社区主理人 擅长.net、C…...
iOS——MRC与ARC以及自动释放池深入底层学习
MRC与ARC再回顾 在前面,我们简单学了MRC与ARC。MRC指手动内存管理,需要开发者使用retain、release等手动管理对象的引用计数,确保对象在必要时被释放。ARC指自动内存管理,由编译器自动管理对象的引用计数,开发者不需要…...
OpenCV教程:cv2如何把两张图片的大小,设置成相同的宽高
-------------OpenCV教程集合------------- Python教程99:一起来初识OpenCV(一个跨平台的计算机视觉库) OpenCV教程01:图像的操作(读取显示保存属性获取和修改像素值) OpenCV教程02:图像处理…...
web前端 Vue 框架面试120题(五)
面试题 81 . 请简述Vue更新数组时触发视图更新的方法? 参考回答: push();pop();shift();unshift();splice();sort();reverse()面试题 82 . 简述如何使用Vue-router实现懒加载的方式…...
CV12_ONNX转RKNN模型(谛听盒子)
暂时简单整理一下: 1.在边缘设备上配置相关环境。 2.配置完成后,获取模型中间的输入输出结果,保存为npy格式。 3.将onnx格式的模型,以及中间输入输出文件传送到边缘设备上。 4.编写一个python文件用于转换模型格式,…...
k8s集群创建devops项目一直等待状态,没有发现host
问题分析: kubesphere在帮我们自动化创建一些智能自动化的额时候难免会发生一些小错误,devops-jenkins是一个部署也会生成一个容器组即pod,容器组的容器服务端口是 targetPort,容器组对外暴露的端口是port,拿devops-c…...
chatglm2-6b-prompt尝试
参考https://cloud.tencent.com/developer/article/2426296 chatglm2-6b,通过prompt来实现zero-shot/fewshot的自然语言处理任务 import json import re import os from modelscope.utils.constant import Tasks from modelscope import Model from modelscope.pi…...
vite+vue3项目初始化搭建
vitevue3项目初始化搭建 "nodejs": v18.19.0 "pnpm": 8.15.0 "vue": v3.4.21 "vite": v5.2.01.创建项目 Vite中文官网 pnpm create vitelatest项目名字:gd_web 选择框架:Vue3 选择语言:JavaScrip…...
使用 Vue3、Node.js、MySQL、Electron 和 Express 实现用户登录、文章管理和截屏功能
在现代 Web 开发中,前后端分离的架构已经成为主流。本文将详细介绍如何使用 Vue3、Node.js、MySQL、Electron 和 Express 实现一个完整的用户登录、文章管理和截屏功能的应用。我们将从项目的初始化开始,逐步实现各个功能模块,并提供详细的代…...
django中日志模块logging的配置和使用
一、文件的配置 settings.py文件中添加LOGGING块的配置,配置如下 # 日志记录 LOGGING {"version": 1,"disable_existing_loggers": False, # 用于确定在应用新的日志配置时是否禁用之前配置的日志器# 格式器"formatters": {"v…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
