プレイヤーにアニメーション(歩く様子)がつけられないがエラーも出ない

投稿者: Anonymous

以下の記事をとても参考にさせていただきつつ、
https://qiita.com/yamajyn/items/3436d650a6e7b6fc759e
自機に動きをつけたいと考え、自機クラス(Player)のinit関数内に以下のようにアトラスを作成しています。
Assetフォルダの中ではしっかりとTextureSetとして3枚がひとまとまりのフォルダになっていますし、あまりにも自然にビルドも通っています。
しかし、アニメーションが機能しません。
こういった時は大抵、アニメーションの宣言をする場所が端から間違っていたりすることが多いのですが……わかりません。
どなたか、教えていただけると幸いです。
また、printを用いてtexturesの配列の中身も確認しましたが、問題なく意図した通りのファイル名が整然としており、ファイル名ミスはあまり考えられません。

 init(def_pos: CGPoint) {
        var textures: [SKTexture] = []
        let atlas = SKTextureAtlas(named: "jelly")
        for i in 1...3 {
            textures.append(atlas.textureNamed("jelly" + String(i)))
        }

        super.init(texture: textures[2], color: NSColor.clear, size: CGSize(width: 40, height: 40))
        self.position = def_pos

        let animation = SKAction.animate(withNormalTextures: textures, timePerFrame: 1.0)
        self.run(SKAction.repeatForever(animation))
}

解決

このケースでは

let animation = SKAction.animate(withNormalTextures: textures, timePerFrame: 1.0)

は意図する動きになりません。
現バージョン(19/9/4時点)では

let animation = SKAction.animate(with: textures, timePerFrame: 0.2)

以上のように綴ります。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *