在Swift中添加Texture后,SKView的背景颜色会覆盖SKSpriteNode的颜色

时间:2015-11-30 16:26:16

标签: ios swift colors sprite chess

我正在使用Swift中的SpriteKit编写一个用于国际象棋编程的IOS应用程序。在将棋子的纹理添加到现有的彩色SKSpriteNode时,SKView的背景颜色会覆盖SKSpriteNode的背景颜色。

每个棋盘广场都是一个绿色或白色的SKSpriteNode。预期的行为是即使在棋盘方块顶部添加纹理(棋子)之后,仍将SKSpriteNode的颜色(绿色或白色)保留在棋盘方块中。 (即)纹理的背景颜色必须与棋盘方块的当前颜色(绿色或白色)动态匹配。

SKView的背景颜色设置为棕色 backgroundColor = SKColor.brownColor()

SKSpriteNode用于在嵌套循环内创建的棋盘方块(绿色和白色方块)。 boardSquare.square = SKSpriteNode(color: currentColor, size: boardSquare.squareSize)

添加可选棋子纹理的代码。 getPieceTexture返回可选的SKTexture?对于最初的方形位置。 boardSquare.square.texture = getPieceTexture(boardSquare)

我找不到办法解决我刚才提到的问题。我还附上了棋盘的截图,其中显示了棋盘方块,棋盘和SKView的背景颜色。有人可以帮我解决这个问题吗?

如果这篇文章有任何错误,请原谅。这是我的第一篇文章。

谢谢, ArtBajji

Partial screenshot of the ChessBoard

1 个答案:

答案 0 :(得分:0)

使用棋子纹理创建一个新的SKSpriteNode,并将新节点放在与棋盘方块节点相同的位置。棋盘方块的背景颜色没有改变为SKView的背景颜色,但仍然与方形的颜色相同。希望这有助于其他人面临类似问题。感谢。