Godot:我设置了一个变量,但它充当了一个指针
Godot: Im setting a variable but its acting as a pointer
var t = db.query_result
然后我在 for 中使用它和多个其他更改 t 值的查询,但我想将它设置为我的第一个查询的值?如何将 t 设置为 db.query_result 并使其在我进行其他查询时不再更改?
func setTuto1():#
db.open_db()
db.query("select ID from currentTutorialMap where LandTextureType = 'Stone0';")
var t = db.query_result
print(t)
print(t.size())
print(t[1]["ID"])
for i in range(0, t.size()):
var x = rng.randi_range(0, 6)
if x==0:
db.query("update currentTutorialMap set LandTextureIndex = 10 where ID == %d;" % t[i]["ID"])
elif (x==1 or x==2):
db.query("update currentTutorialMap set LandTextureIndex = 9 where ID == %d;" % t[i]["ID"])
elif (x==3 or x==4):
db.query("update currentTutorialMap set LandTextureIndex = 11 where ID == %d;" % t[i]["ID"])
elif (x==5 or x==6):
db.query("update currentTutorialMap set LandTextureIndex = 12 where ID == %d;" % t[i]["ID"])
变量 t
是您方法的局部变量 (func
)。如果您希望它保留其值,请将其设为一个字段(在任何 func
之外声明它,指南建议在脚本顶部执行此操作)。
如果你只想要第一个结果,而不是覆盖它,你可以有一个 bool
变量,默认设置为 false
。当您写 t
时,您将其设置为 true
。这允许您检查是否已经设置 t
.
像这样:
var _is_t_set := false
var _t
func setTuto1():
if _is_t_set:
# we have been here before
# do whatever you do in this case
pass
else:
# first time we are here
db.open_db()
db.query("blah blah blah")
_t = db.query_result
_is_t_set = true # so we do not enter here again
或者您可以使用 null。尽管仔细检查 db.query_result
是否可以为空。
像这样:
var _t = null
func setTuto1():
if _t != null:
# we have been here before
# do whatever you do in this case
pass
else:
# first time we are here
db.open_db()
db.query("blah blah blah")
_t = db.query_result
另外,。
var t = db.query_result
然后我在 for 中使用它和多个其他更改 t 值的查询,但我想将它设置为我的第一个查询的值?如何将 t 设置为 db.query_result 并使其在我进行其他查询时不再更改?
func setTuto1():#
db.open_db()
db.query("select ID from currentTutorialMap where LandTextureType = 'Stone0';")
var t = db.query_result
print(t)
print(t.size())
print(t[1]["ID"])
for i in range(0, t.size()):
var x = rng.randi_range(0, 6)
if x==0:
db.query("update currentTutorialMap set LandTextureIndex = 10 where ID == %d;" % t[i]["ID"])
elif (x==1 or x==2):
db.query("update currentTutorialMap set LandTextureIndex = 9 where ID == %d;" % t[i]["ID"])
elif (x==3 or x==4):
db.query("update currentTutorialMap set LandTextureIndex = 11 where ID == %d;" % t[i]["ID"])
elif (x==5 or x==6):
db.query("update currentTutorialMap set LandTextureIndex = 12 where ID == %d;" % t[i]["ID"])
变量 t
是您方法的局部变量 (func
)。如果您希望它保留其值,请将其设为一个字段(在任何 func
之外声明它,指南建议在脚本顶部执行此操作)。
如果你只想要第一个结果,而不是覆盖它,你可以有一个 bool
变量,默认设置为 false
。当您写 t
时,您将其设置为 true
。这允许您检查是否已经设置 t
.
像这样:
var _is_t_set := false
var _t
func setTuto1():
if _is_t_set:
# we have been here before
# do whatever you do in this case
pass
else:
# first time we are here
db.open_db()
db.query("blah blah blah")
_t = db.query_result
_is_t_set = true # so we do not enter here again
或者您可以使用 null。尽管仔细检查 db.query_result
是否可以为空。
像这样:
var _t = null
func setTuto1():
if _t != null:
# we have been here before
# do whatever you do in this case
pass
else:
# first time we are here
db.open_db()
db.query("blah blah blah")
_t = db.query_result
另外,