将字符串的文本转换为变量名称?

时间:2015-08-24 17:34:44

标签: swift function sprite-kit

我试图在之前的问题中解释这个但是失败了......

func setPiece(square: String, piece: String) {

   if (piece == "whiteKing") {A1Square.texture = whiteKing}

}

这很好用,但问题是我需要为所有正方形和碎片提供大量代码,我想要的是这个......

  func setPiece(square: String, piece: String) {

       if (piece == "whiteKing") {square.texture = whiteKing}

    }

将“A1Square”传递给函数......

我想将字符串“A1Square”.texture = whiteKing转换为A1Square.texture = whiteKing。反正有吗?

1 个答案:

答案 0 :(得分:0)

Azurlake有正确的想法,尝试将函数传递给类A1Square的对象而不是String

如果您不想这样做,并且A1Square是节点,则可以使用SpriteKit方法childNodeWithName:。如果在square的父节点上调用它并使用字符串作为square的名称,它将返回该名称的子节点。
例如,如果您将方格添加到self,您可以说:

let node: SKSpriteNode = self.childNodeWithName(square) as SKSpriteNode
if (piece == "whiteKing") {node.texture = whiteKing}