使用Swift在Sprite Kit中构build棋盘游戏?

在使用Swift的Sprite工具包中,我正在尝试构build一个棋盘(实际上是一个象棋棋盘/瓷砖网格)。 所以一般来说,我应该如何去创build一个方形网格板?

我已经做了大量的研究,并通过multidimensional array研究了象棋棋盘的高级概念的一些例子,但是它仍然没有真正解释如何在Sprite Kit中可视化地表示它,更重要的是,如何将视觉表示映射到multidimensional array中的字母+数字表示…

有什么想法吗?

如果有人能够回答上述问题中的至less一点/部分,将不胜感激! 非常感谢您的高级!

在SpriteKit中绘制棋盘的一种方法是在适当的位置添加交替的白色和黑色精灵节点。 这是一个如何做到这一点的例子。

override func didMoveToView(view: SKView) { self.scaleMode = .ResizeFill // Draw the board drawBoard() // Add a game piece to the board if let square = squareWithName("b7") { let gamePiece = SKSpriteNode(imageNamed: "Spaceship") gamePiece.size = CGSizeMake(24, 24) square.addChild(gamePiece) } if let square = squareWithName("e3") { let gamePiece = SKSpriteNode(imageNamed: "Spaceship") gamePiece.size = CGSizeMake(24, 24) square.addChild(gamePiece) } } 

这个方法画棋盘。

  func drawBoard() { // Board parameters let numRows = 8 let numCols = 8 let squareSize = CGSizeMake(32, 32) let xOffset:CGFloat = 50 let yOffset:CGFloat = 50 // Column characters let alphas:String = "abcdefgh" // Used to alternate between white and black squares var toggle:Bool = false for row in 0...numRows-1 { for col in 0...numCols-1 { // Letter for this column let colChar = Array(alphas)[col] // Determine the color of square let color = toggle ? SKColor.whiteColor() : SKColor.blackColor() let square = SKSpriteNode(color: color, size: squareSize) square.position = CGPointMake(CGFloat(col) * squareSize.width + xOffset, CGFloat(row) * squareSize.height + yOffset) // Set sprite's name (eg, a8, c5, d1) square.name = "\(colChar)\(8-row)" self.addChild(square) toggle = !toggle } toggle = !toggle } } 

此方法返回具有指定名称的方形节点

  func squareWithName(name:String) -> SKSpriteNode? { let square:SKSpriteNode? = self.childNodeWithName(name) as SKSpriteNode? return square }