【发布时间】:2016-01-11 18:01:34
【问题描述】:
我一直在使用 SKTexture 通过以下方式在 didBeginContact 中更改 SKSpriteNode 颜色和大小。
if firstBody.categoryBitMask == spriteCategory && secondBody.categoryBitMask == enemyCategory {
var newSprite = firstBody.node
let newImage = SKTexture(imageNamed: "newSprite.png")
(newSprite as? SKSpriteNode)?.size = newImage.size() //magic
oldToNewSpriteAction = SKAction.setTexture(newImage)
newSprite!.runAction(oldToNewSpriteAction)
}
现在我正在创建一个不带 SKTextures 的示例代码,按以下方式设置我的 SKSpriteNodes:
oldSprite = SKSpriteNode(color: SKColor.blueColor(), size: oldSpriteSize)
newSprite = SKSpriteNode(color: SKColor.BrownColor(), size: newSpriteSize)
如何在没有 SKTextures 的情况下更改 didBeginContact 中的精灵颜色和大小?
【问题讨论】:
-
... 只是做你正在做的事情,但不是 newImage.size(),而是使用你想要的任何大小,然后 newSprite.color = UIColor.whateverColor()
-
@Knight0fDragon
newSprite = firstBody.node,将其设为SKNode,所以当我执行newSprite.color = UIColor.blueColor()时,我收到一个错误消息Value of type 'SKNode' has no member 'color'。另外如果我理解你的话,不用newImage,对吧? -
因为你需要把它转换成一个skspritenode
-
向下转型
if let newSprite = firstBody.node as? SKSpriteNode { ... }
标签: swift sprite-kit swift2 skspritenode