8.Godot 函数|变量|运算符|条件循环语句

函数

函数的概念
  • 函数也叫方法或模块,是一套操作的集合。函数也包括自定义函数与内置函数。当它被调用时执行的可重复使用的代码块

  • 大部分内置函数可以对游戏内容产生实质性的影响或在代码中起到传递数据的作用。少部分函数比较特殊。

  • 一个函数除名称外,还包括了 【输入信息、处理流程、处理结果】等关键信息。在程序中,一切数据的处理流程都要通过调用函数来实现。

  • 函数调用一般必须指明调用对象

  • 空函数需要使用pass关键字

func sayHello():
    # 执行代码
  • 调用带参数的函数,在调用函数时,您可以向其传递值,这些值被称为参数。
func sayHello(param1, param2):
    # 执行代码
  • 带有返回值的函数,有时,我们会希望函数将值返回调用它的地方,通过使用 return 语句就可以实现。
  • return方法可以指定返回的类型
func sayHello(param1, param2):
    # 执行代码
    return x
内置虚函数的调用
  • 虚函数是指没有实际处理流程的函数,这部分函数的内容可以由我们自行编写。而内置虚函数则是指 Godot 的制作组规定了特定名称却没有实际处理流程的函数。节点内的虚函数会在特定的条件下自动被触发。
  • 条件 1:当节点本身或其周围节点状态发生改变时。【节点创建、节点入“树”、节点出“树”、节点死亡前、节点的子节点全部加入场景树·】
  • 条件 2:当场景树的状态发生改变时,且节点自身处于“树”下。【画面刷新、物理引擎刷新、硬件设备输入】
  • 条件 3:其他情况。
  • 常用虚函数:_init,ready,_process,_physic_process

函数中的变量

  • 函数中也可以定义变量,各个函数都拥有一个独立的作用域,在一个函数内部定义的变量无法在另一个函数中直接访问变量名。
  • 在函数运行结束后变量和变量所代表的数据会自动销毁。某些情况下,变量所代表的数据不会自动销毁,(后续教程提及)但变量一定会自动销毁。
  • 局部作用域,变量在函数内声明,变量为局部作用域,只能在函数内部访问
# 此处不能调用 carName 变量
func myFunction():
    var carName = "Volvo";
    # 函数内可调用 carName 变量
  • 全局变量,变量在函数外定义,即为全局变量,整个脚本文件中都可以使用
var carName = " Volvo";
 
# 此处可调用 carName 变量
func myFunction():
    # 函数内可调用 carName 变量

运算符

  • 算术运算符
+	加法	        x=y+2	7	5
-	减法	        x=y-2	3	5
*	乘法	        x=y*2	10	5
/	除法	        x=y/2	2.5	5
%	取模(余数)	x=y%2	1	5
  • 赋值运算符,赋值运算符用于给 GdScript 变量赋值
=	x=y	 	x=5
+=	x+=y	x=x+y	x=15
-=	x-=y	x=x-y	x=5
*=	x*=y	x=x*y	x=50
/=	x/=y	x=x/y	x=2
%=	x%=y	x=x%y	x=0
  • 比较运算符,比较运算符在逻辑语句中使用,以测定变量或值是否相等
==	等于	x==8	false
!=	 不等于	x!=8	true
>	 大于	x>8	false
<	 小于	x<8	true
>=	 大于或等于	x>=8	false
<=	 小于或等于	x<=8	true
  • 逻辑运算符,逻辑运算符用于测定变量或值之间的逻辑。
&&	and	(x < 10 && y > 1) 为 true
||	or	(x==5 || y==5) 为 false
!	not	!(x==y) 为 true

条件语句

if 的作用
  • 通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完成该任务。
  • 使用 if 可以在函数中设置情况分支,起到控制数据处理流程的作用
elif 以及 else
  • elif 是 if 的补充,一个 if 可以有无数个 elif 对其进行补充。
  • 当所有的 if 与 elif 判断失败时,程序执行 else 内部内容。一个 if 后只能有一个对应的else
作用域
  • 一个 if 与它对应的 elif 以及 else 都有各自独立的作用域,作用域内定义的变量互相独立。

  • if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码

if (condition):
    当条件为 true 时执行的代码
  • if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if (condition):
    当条件为 true 时执行的代码
else:
    当条件不为 true 时执行的代码
  • if…else if…else 语句- 使用该语句来选择多个代码块之一来执行
if (condition1):
    当条件 1 为 true 时执行的代码
elif (condition2):
    当条件 2 为 true 时执行的代码
else:
  当条件 1 和 条件 2 都不为 true 时执行的代码
  • match(switch) 语句 - 使用该语句来选择多个代码块之一来执行

10. 循环语句

while的作用
  • 循环可以将代码块执行指定的次数,如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的
while 的使用方法
  • while 与 if 写法一致,但没有 elif 与 else
  • 当 while 内部模块执行完毕时,程序会再次判断 while 是否成立,若成立则会继续执行 while 内容。
while 的注意事项
  • 避免死循环。要设置破坏循环条件的代码。

  • while 也会产生一个作用域,效果同 if。

  • for

  • while

  • break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)

  • continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/557318.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

盲盒新风潮:从玩具到文化符号的转变

亲爱的朋友们&#xff0c;我是微三云的周丽&#xff0c;一名专注于私域电商模式创新的探索者。 随着互联网和电子商务的迅猛发展&#xff0c;商业模式不断创新&#xff0c;盲盒电商作为其中的一种新兴形式&#xff0c;正逐渐引起人们的关注。盲盒电商不仅仅局限于传统的日用品…

【电控实现5.1】

标幺系统 vb&#xff1a;峰值

【Node.js】 fs模块全解析

&#x1f525;【Node.js】 fs模块全解析 &#x1f4e2; 引言 在Node.js开发中&#xff0c;fs模块犹如一把万能钥匙&#xff0c;解锁着整个文件系统的操作。从读取文件、写入文件、检查状态到目录管理&#xff0c;无所不能。接下来&#xff0c;我们将逐一揭开fs模块中最常用的那…

【C++】string的使用

目录 1、为什么学习string类&#xff1f; 2、标准库中的string类 2.1 string类 2.2 string类的常见接口声明 2.2.1 string类的常见构造 ​编辑 2.2.2 string类对象的访问及遍历操作 2.2.3 string类对象的容量操作 2.2.4 string类对象的修改操作 ​编辑 1、为什么学习s…

CERLAB无人机自主框架: 2-动态目标检测与跟踪

前言&#xff1a;更多更新文章详见我的个人博客主页【MGodmonkeyの世界】 描述&#xff1a;欢迎来到CERLAB无人机自主框架&#xff0c;这是一个用于自主无人飞行器 (UAV) 的多功能模块化框架。该框架包括不同的组件 (模拟器&#xff0c;感知&#xff0c;映射&#xff0c;规划和…

gemini国内能用吗

gemini国内能用吗 虽然 Gemini 的具体功能和性能还未完全公开&#xff0c;但基于 Google 在 AI 领域的强大背景和技术实力&#xff0c;已经火出圈了&#xff0c;很多小伙伴已经迫不及待想了解一下它有什么优势以及如何快速使用上 首先我们来讲一下gemini的优势 多模态能力&a…

美摄智能视频创作平台,满足企业个性化的创作需求

视频已成为企业传播信息、展示品牌、吸引客户的重要手段&#xff0c;传统的视频制作方式往往耗时耗力&#xff0c;且效果不佳。美摄科技凭借其深厚的技术积累和创新能力&#xff0c;推出了面向企业的智能视频创作平台解决方案&#xff0c;助力企业轻松实现高质量的视频制作与传…

5 CatBoost模型

目录 1 背景 2 原理 2.1 类别特征处理 2.1.1 传统目标编码&#xff1a; TS 2.1.2 Greedy TS 2.1.3 ordered TS编码 2.1.4 CatBoost处理Categorical features总结 2.2.预测偏移处理 2.2.1 梯度无偏估计 2.3 树的构建​​​​​​​ 3 优缺点 优点 4 代码 1 背景 终于…

OpenHarmony鸿蒙南向开发案例:【智能门铃】

样例简介 智能门铃通过监控来访者信息&#xff0c;告诉主人门外是否有人按铃、有陌生人靠近或者无人状态。主人可以在数字管家中远程接收消息&#xff0c;并根据需要进行远程取消报警和一键开锁。同时&#xff0c;也可以通过室内屏幕获取门外状态。室内屏幕显示界面使用DevEco…

【创建型模式】单例模式

一、单例模式概述 单例模式的定义&#xff1a;又叫单件模式&#xff0c;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。&#xff08;对象创建型&#xff09; 要点&#xff1a; 1.某个类只能有一个实例&#xff1b;2.必须自行创建这个实例&#xff1b;3.必须自行向整…

C语言 | 动态内存管理

目录&#xff1a; 1. 为什么要有动态内存分配 2. malloc和free 3. calloc和realloc 4. 常见的动态内存的错误 5. 动态内存经典笔试题分析 6. 柔性数组 1. 为什么要有动态内存分配 我们已经掌握的内存开辟方式有&#xff1a; int val 20; //在栈空间上开辟四个字节 cha…

MR-JE-70A 三菱MR-JE伺服驱动器(750W通用型)

三菱MR-JE伺服驱动器(750W通用型) MR-JE-70A外部连接,MR-JE-70A用户手册,MR-JE-70A 三相或单相AC220V三菱通用型伺服放大器750W&#xff0c;配套电机HG-SN52J-S100、HG-KN73J-S100。 MR-JE-70A参数说明&#xff1a;伺服驱动器通用型750W&#xff0c;三相或单相AC200V~240V 三…

C语言野指针【入门详解】

目录 一、什么是野指针 二、野指针的成因 2.1 指针未初始化 2.2 指针越界访问 2.3 指针指向的空间释放 三、如何规避野指针 3.1 初始化指针 3.2 小心越界访问 3.3 当指针不用时&#xff0c;及时置为空 3.4 避免返回局部变量的地址 *结语&#xff1a; 希望这篇关于指…

IM即时通讯软件,WorkPlus私有化部署全面支持信创环境

在数字化转型的浪潮中&#xff0c;政企单位对即时通讯(IM)软件的需求日益增长。然而&#xff0c;随着信息化程度的提高&#xff0c;数据安全和信息泄露风险也日益凸显。在这样的背景下&#xff0c;WorkPlus作为一款私有化部署的IM即时通讯软件&#xff0c;以其在安全性、管理便…

汇编语言——将BX中的无符号数和有符号数以二进制、八进制、十六进制、十进制形式输出

文章目录 将BX中的无符号数以二进制形式输出将BX中的无符号数以八进制形式输出将BX中的无符号数以十六进制形式输出将BX中的无符号数以十进制形式输出将BX中的有符号数以十进制形式输出 将BX中的无符号数以二进制形式输出 利用移位指令会影响CF&#xff0c;默认dl30h(数字0)&a…

时序深入之CPR(Clock Pessimism Removal)详解

目录 一、CPR概念 二、CPR的计算 三、CPR的开启关闭 四、CPR为0 ​五、参考资料 一、CPR概念 在时序报告的目标时钟路径中&#xff0c;会有一行数据clock pesssimism&#xff0c;第一次见可能都会对这个概念感到疑惑 同样在每条时序路径的summary中&#xff0c;clock pat…

自动化测试Selenium(4)

WebDriver相关api 定位一组元素 webdriver可以很方便地使用findElement方法来定位某个特定的对象, 不过有时候我们需要定位一组对象, 这时候就要使用findElements方法. 定位一组对象一般用于一下场景: 批量操作对象, 比如将页面上的checkbox都勾上. 先获取一组对象, 再在这组…

[最新]访问/加速StackOverFlow的方法

但是有很多问题都是在StackOverFlow上有现成的解决方案&#xff0c;而某度搜索引擎…前一页的回答互相抄袭&#xff0c;看着实在胀眼睛。 话不多说&#xff0c;解决办法&#xff1a; 直接访问插件商店下载插件&#xff08;最快捷方便&#xff0c;点点就行&#xff09;&#x…

Linux系统编程——权限概念和权限管理

目录 一&#xff0c;关于Shell 1.1 外壳程序 1.2 shell的作用 1.3 shell运行原理 二&#xff0c;权限概念 2.1 用户与权限 2.2 su&#xff08;用户切换指令&#xff09; ​编辑 2.3 提升指令权限和信任名单 三&#xff0c;文件权限 3.1 关于文件权限 3.2 文件访问者…

UG10.如何设置鼠标滚轮操作模型放大缩小方向?

UG10.如何设置鼠标滚轮操作模型放大缩小方向呢&#xff1f;看一下具体操作步骤吧。 首先打开UG10.软件&#xff0c;在主菜单栏选择【文件】下拉菜单&#xff0c;选择【实用工具】。 点击【用户默认设置】。 文章源自四五设计网-https://www.45te.com/45545.html 选中【基本环…
最新文章