SpriteKit纹理持续时间

时间:2015-06-16 13:36:28

标签: swift sprite-kit skspritenode skaction sktexture

我正在制作游戏,我有一个在2个纹理之间来回切换的节点。我想知道如何在每个纹理切换回前一个纹理之前为其添加0.5秒的持续时间。现在,当我运行游戏时,纹理立即切换,所以我想延迟0.5秒。

我目前的代码:

func move(){

    let recursive = SKAction.sequence([

        SKAction.setTexture(SKTexture(imageNamed: "D2")),
        SKAction.setTexture(SKTexture(imageNamed: "DWalkRight")),
        SKAction.moveByX(frame.size.width/2.8, y: 0, duration: NSTimeInterval(randomNumber())),
        SKAction.setTexture(SKTexture(imageNamed: "D1")),
        SKAction.setTexture(SKTexture(imageNamed: "DWalkLeft")),
        SKAction.moveByX(-frame.size.width/2.8, y: 0, duration: NSTimeInterval(randomNumber())),
        SKAction.runBlock({self.move()})])

        Drake1.runAction(recursive, withKey: "move")
}

2 个答案:

答案 0 :(得分:0)

您可以使用包含图片的SKTextureAtlas

然后您可以将此地图集加载到可以与SKAction.animateWithTextures:timePerFrame:

一起使用的数组中

有关SKTextureAtlas的详细介绍,您可以查看this tutorial

希望这很有用

答案 1 :(得分:0)

SKSpriteNode docs中解释了这一点。

myNode.texture = SKTexture(imageNamed: "imageName")