同一函数内 GDScript 中的范围错误

问题描述 投票:0回答:1

我正在制作一个国际象棋游戏,遇到了这个;

func _ready() -> void:
    var x = Vector2(10,0)
    var y = Vector2(0,10)
    var white_sqaure = ImageTexture.create_from_image(Image.load_from_file("res://w_square.png"))
    var black_sqaure = ImageTexture.create_from_image(Image.load_from_file("res://b_sqaure.png"))
    for i in range(1,9):
        for j in range(1,9):
            print(i,j)
            var square = Node2D.new()
            square.set_position(i*x + j*y)
            self.add_child(square)
            var sprite = Sprite2D.new()
            if (i+j)%2 == 0:
                sprite.texture = black_square
                pass
            else:
                sprite.texture = white_square
                pass
            square.add_child(sprite)
    pass # Replace with function body.

错误

第 18 行:标识符“black_square”未在当前作用域中声明。

第 21 行:标识符“white_square”未在当前作用域中声明。

scope gdscript
1个回答
0
投票

我猜这些是警告而不是错误? 我发现 gdscript 不喜欢在其特定范围之外初始化变量 - 在本例中是在循环之外。但在每次迭代中重新声明它们也感觉很浪费。我通常会忽略这些警告,但如果您在循环内移动声明,警告应该会消失。仅供参考,我刚刚写了一个国际象棋游戏(包括一个基本的人工智能) - 如果您有任何一般性问题,请随时给我发消息(您可以在这里发送消息吗?如果没有,请在 itch.io 上查找 goldfish_chess 并在那里给我发消息)

© www.soinside.com 2019 - 2024. All rights reserved.