如何在没有纹理地图集的情况下为精灵制作动画

时间:2015-10-14 18:42:13

标签: swift sprite-kit

据我所知,iOS 9正在将地图集转换为可怕的东西,所以我不想使用它。至少在他们解决问题之前。我需要动画一只手并试图在没有地图集的情况下这样做。然而,由于某种原因它崩溃了。我在images.xcassets中有我的纹理。这就是我的所作所为:

var leftHand = SKSpriteNode()
var leftArmAnimationArray = ["1l", "2l", "3l", "4l", "5l"]

func addLeftHand() {
   leftHand = SKSpriteNode(imageNamed: "1l")
   leftHand.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
    addChild(leftHand)
}

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)
        switch self.nodeAtPoint(location) {
        case self.leftHand:
leftHand.runAction(SKAction.animateWithTextures(leftArmAnimationArray, timePerFrame: 0.3))
    }
  }
}

它崩溃了,并向我展示了SIGABRT。我究竟做错了什么?如果没有.atlas,可以在SpriteKit中为sprite做动画吗?

1 个答案:

答案 0 :(得分:1)

认为你需要为你现在放置在leftArmAnimationArray中的每个项目说出类似SKTexture(imageNamed:&#34; 1l&#34;),SKTexture(imageNamed:&#34; 2l&#34;)的内容&# 39; s只是一个字符串数组,应该是纹理数组。