2014-11-14 93 views
4

我想在Sprite工具包上使用swift創建矩形,因爲矩形需要用作場景中的對象,我假設我需要創建一個SkSpriteNode ,並給它的大小,但它並沒有工作,這是我做的:如何使用Swift在Sprite工具包中創建矩形

var barra = SKSpriteNode() 
barra.name = "bar" 
barra.size = CGSizeMake(300, 100) 
barra.color = SKColor.whiteColor() 
barra.position = CGPoint(x: 100, y: 100) 
self.addChild(barra) 

添加巴拉屏幕不改變節點計數。

任何幫助將不勝感激!

+1

'讓巴拉= SKSpriteNode(顏色:SKColor.whiteColor(),尺寸:CGSize(300,100))' – 0x141E 2014-11-15 00:01:53

+0

在斯威夫特3:讓巴拉= SKSpriteNode(顏色:。白色,尺寸:CGSize(寬度:300,高度:100)) – CraicDesign 2016-08-27 02:28:06

回答

15

您可能需要使用一個SKShapeNode,像這樣:

var barra = SKShapeNode(rectOfSize: CGSize(width: 300, height: 100)) 
barra.name = "bar" 
barra.fillColor = SKColor.whiteColor() 
barra.position = location 

self.addChild(barra) 

Here's Apple's documentation on SKShapeNode.

+0

SKShapeNodes的性能非常差,並且存在內存問題。只需使用大小的構造函數,在這種情況下顏色就很好。 – Simon 2015-10-26 19:47:04

+2

@Simon你是對的。您可以並且應該使用SKSpriteNode而不是SKShapeNode,但是由於性能的原因,您可以使用SKSpriteNode,但是通過使用SKShapeNode,您可以更清楚地說明要做什麼(這是創建一個形狀),並且首先代碼清晰度應該是您最大的關心。 – 2015-10-29 00:35:56

4

我創建矩形的方式不是最好的,但問題是我是在將其插入的位置遊戲。這是我是如何固定它:

var barra = SKSpriteNode(color: SKColor.blackColor(), size: CGSizeMake(200, 200)) 
barra.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame)) 
barra.zPosition = 9 // zPosition to change in which layer the barra appears. 

self.addChild(barra)