gpt4 book ai didi

godot - 在 GDScript 中将数字附加到变量名称

转载 作者:行者123 更新时间:2023-11-28 22:11:15 27 4
gpt4 key购买 nike

我想在 GDSCript 中的几个变量名称的末尾附加一个整数。

我正在开发一款 roguelike 游戏,我决定组织主题图 block 和 NPC,并按编号将它们分组到文件夹中(即,主题 1 可能是充满不死生物的墓穴,主题 2 可能是充满动物的森林)。这个想法是,在关卡生成开始时,我可以随机选择一个数字,生成一个关卡并用相应的敌人填充它。

例如(假设随机数为1)

tileset_to_use = tileset_1
NPC_mid_boss = folder_1/mid_boss
NPC_end_boss = folder_1/end_boss

除了一系列嵌套的 IF 语句之外:

if RNG = 1:
tileset_to_use = tileset_1
NPC_mid_boss = folder_1/mid_boss
NPC_end_boss = folder_1/end_boss
elif RNG = 2:
tileset_to_use = tileset_2
etc...

...更有效的方法是什么?像tileset+RNG之类的东西我研究过使用字典,但是除非我误解了它们,否则它们似乎用于访问值而不是生成变量名称。

最佳答案

如果您的所有主题都具有相同的结构,您可以执行类似于 what Christopher Bennett proposes 的操作。另一种可以为您提供更大灵活性的选项,但代价可能是更多的重复,如下所示:

# Defined at class level
const THEMES = [
# Theme 1
{
tileset = 'tileset_1',
NPC_mid_boss = 'folder_1/mid_boss',
NPC_end_boss = 'folder_1/end_boss',
# ...
},
# Theme 2
{
tileset = 'tileset_2',
NPC_mid_boss = 'folder_2/mid_boss',
NPC_end_boss = 'folder_2/end_boss',
# ...
},
# ...
]


func my_func():
# Pick a random theme
var theme = THEMES[randi() % THEMES.size()]
tileset_to_use = theme.tileset
# ...

这还允许您添加更多属性,例如任意字符串(例如主题名称)或其他内容,并且可以外部化为类似 JSON document 的内容。如果你想。但同样,它需要更多的手动设置。

关于godot - 在 GDScript 中将数字附加到变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55935505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com