凉鞋的 Godot 笔记 201. 第三轮循环:引入变量

201. 第三轮循环:引入变量

在这一篇,我们进行第三轮 编辑-测试 循环。

在之前我们编写了 输出 Hello Godot 的脚本,如下:

python 复制代码
extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	print("Hello Godot")
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

如果我们要输出 10 次 Hello Godot 该怎么办呢?

答案很简单,就是复制十行 print("Hello Godot"),代码如下:

python 复制代码
extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	print("Hello Godot")
	print("Hello Godot")
	print("Hello Godot")
	print("Hello Godot")
	print("Hello Godot")
	
	print("Hello Godot")
	print("Hello Godot")
	print("Hello Godot")
	print("Hello Godot")
	print("Hello Godot")
	
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

这样当我们运行次场景后,结果如下:

总共输出了十次 Hello Godot。

此时我突然想要把输出十次 Hello Godot 改成输出十次 Hello GDScript。

那么最简单的方式,就是直接修改代码,如下:

python 复制代码
extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	print("Hello GDScript")
	print("Hello GDScript")
	print("Hello GDScript")
	print("Hello GDScript")
	print("Hello GDScript")
	
	print("Hello GDScript")
	print("Hello GDScript")
	print("Hello GDScript")
	print("Hello GDScript")
	print("Hello GDScript")
	
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

运行之后结果如下:

但是这样太不优雅了,我们需要复制粘贴十次,如果我们有 100 个甚至 1000 个 Hello Godot,那么我们可能需要复制粘贴很多次,或者使用代码编辑器所提供的查找/替换功能完成。

比较优雅的方式就是引入一个变量,代码如下所示:

python 复制代码
extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	var text_to_print = "Hello GDScript"
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

这样当我们想要输出十次 Hello World 那么我们只需要修改变量的值即可,如下所示:

python 复制代码
extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	var text_to_print = "Hello World"
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

这样非常优雅。

我们在代码中新引入的 text_to_print 叫做变量。

变量可以存储一个值,然后在接下来可以通过这个变量来代替具体的值。

比如 text_to_print 是 "Hello World",那么接下来的每一句 print(text_to_print) 其实都是 print("Hello World")。

变量给编程带来了巨大的便利。

当然,变量是每一个程序语言都有的,而每一个游戏引擎不管是提供专业脚本支持还是可视化脚本支持都会提供变量的使用,所以变量也是通识部分的内容,在接下来的篇幅里,笔者会好好介绍变量,以及 Godot 的 GDScript 中的变量使用。

这一篇的内容就这些,我们下一篇再见,拜拜。

知识地图

转载请注明 凉鞋的笔记

相关推荐
幸运超级加倍~几秒前
软件设计师-上午题-16 算法(4-5分)
笔记·算法
charon877818 分钟前
UE ARPG | 虚幻引擎战斗系统
游戏引擎
王俊山IT19 分钟前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习
Yawesh_best1 小时前
思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!
笔记·语言模型·ai写作
小春熙子1 小时前
Unity图形学之Shader结构
unity·游戏引擎·技术美术
CXDNW3 小时前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0
使者大牙3 小时前
【大语言模型学习笔记】第一篇:LLM大规模语言模型介绍
笔记·学习·语言模型
ssf-yasuo3 小时前
SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记
论文阅读·笔记·prompt
ajsbxi3 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
TeYiToKu4 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm