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 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代

相关推荐

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

    2024-04-23 13:50:02       15 阅读
  2. python 条件循环语句

    2024-04-23 13:50:02       16 阅读
  3. 条件循环语句有哪些?语法?区别?

    2024-04-23 13:50:02       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 13:50:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 13:50:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 13:50:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 13:50:02       20 阅读

热门阅读

  1. python机器学习库中Scikit-learn和TensorFlow如何选择?

    2024-04-23 13:50:02       13 阅读
  2. 【OS】AUTOSAR架构下MCAL Modules软件分区问题分析

    2024-04-23 13:50:02       16 阅读
  3. SQL中不等于的写法

    2024-04-23 13:50:02       13 阅读
  4. Linux文件/目录高级管理一 头歌

    2024-04-23 13:50:02       14 阅读
  5. 智能合约区块应用链交易所系统教程开发搭建

    2024-04-23 13:50:02       14 阅读
  6. 笔记:Python 循环结构练习题

    2024-04-23 13:50:02       13 阅读
  7. 实验3 7段数码管译码器动态显示

    2024-04-23 13:50:02       12 阅读
  8. yolov8下实现绿萝识别

    2024-04-23 13:50:02       23 阅读
  9. 【代码随想录】day44

    2024-04-23 13:50:02       45 阅读
  10. oracle--存储过程基本框架

    2024-04-23 13:50:02       38 阅读
  11. 富格林:善用正规要领杜绝受害

    2024-04-23 13:50:02       35 阅读
  12. 嵌入式学习——C语言基础——day6

    2024-04-23 13:50:02       12 阅读
  13. 2024.4.22每日一题

    2024-04-23 13:50:02       15 阅读
  14. RedisSearch:一个基于Redis的搜索引擎模块

    2024-04-23 13:50:02       54 阅读
  15. VScode 里面使用 python 去直接调用 CUDA

    2024-04-23 13:50:02       19 阅读
  16. 从零开始精通RTSP之深入理解RTCP协议

    2024-04-23 13:50:02       17 阅读