【问题标题】:How to change SKSpriteNode size and colour in didBeginContact without SKTexture?如何在没有 SKTexture 的情况下更改 didBeginContact 中的 SKSpriteNode 大小和颜色?
【发布时间】: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


【解决方案1】:

这应该可以工作

newSprite.color = UIColor.redColor()
newSprite.size = CGSize(width: 250, height: 250)

【讨论】:

  • 和?有了这样的尺寸,您将拥有巨大的精灵(远大于 250x250)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
相关资源
最近更新 更多