我试图在上一个问题中解释这一点,但失败了......
func setPiece(square: String, piece: String) {
if (piece == "whiteKing") {A1Square.texture = whiteKing}
}
这很好用,但问题是我需要大量的代码来处理所有的方 block 和棋子,我想要的是这个......
func setPiece(square: String, piece: String) {
if (piece == "whiteKing") {square.texture = whiteKing}
}
“A1Square”被传递到函数中...
我想将字符串“A1Square”.texture = WhiteKing 转换为 A1Square.texture = WhiteKing。有办法做到这一点吗?
最佳答案
Azurlake 的想法是正确的,尝试向函数传递一个 A1Square
类的对象,而不是 String
。
如果您不想这样做,并且A1Square
是一个节点,则可以使用SpriteKit方法childNodeWithName:
。如果您在方 block 的父节点上调用此函数并使用方 block 名称的字符串,它将返回该名称的子节点。
例如,如果您将方 block 添加到 self
中,您可以说:
let node: SKSpriteNode = self.childNodeWithName(square) as SKSpriteNode
if (piece == "whiteKing") {node.texture = whiteKing}
关于swift - 将字符串文本转换为变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188265/