0

これは、1 秒ごとにズームビー スプライトをシーンに追加する問題です。別のサブ アニメートされたズームビーをズームビー ノードに追加すると、アニメーション化されたテクスチャが読み込まれることがあり、赤い大きな X が表示されることもあります。ここに画像の説明を入力

func addMonster() {

        let zoombieSprite = SKSpriteNode(color: SKColor.greenColor(), size: CGSizeMake(40, 60))

        // Determine where to spawn the monster along the Y axis
        let actualY = randRange(lower: zoombieSprite.size.height, upper: size.height - zoombieSprite.size.height)
        // Position the monster slightly off-screen along the right edge,
        // and along a random position along the Y axis as calculated above
        zoombieSprite.position = CGPoint(x: size.width + zoombieSprite.size.width/2, y: actualY)
        zoombieSprite.physicsBody = SKPhysicsBody(rectangleOfSize: zoombieSprite.size) // 1
        zoombieSprite.physicsBody?.dynamic = true // 2
        zoombieSprite.physicsBody?.categoryBitMask = PhysicsCategory.Monster // 3
        zoombieSprite.physicsBody?.contactTestBitMask = PhysicsCategory.Projectile // 4
        zoombieSprite.physicsBody?.collisionBitMask = PhysicsCategory.None // 5

        addChild(zoombieSprite)


        //zoombieSprite.addChild(createAnimatedZoombie())

        let zoombieAnimation = SKAction.runBlock({
            zoombieSprite.addChild(self.createAnimatedZoombie())

        })



        // Determine speed of the monster
        let actualDuration = randRange(lower: 6.0, upper: 10.0)
        //print("actualDuration = \(actualDuration)")

        let actionMove = SKAction.moveTo(CGPoint(x: -zoombieSprite.size.width/2, y: actualY), duration: NSTimeInterval(actualDuration))

        // Create the actions
        let actionMoveDone = SKAction.removeFromParent()


        zoombieSprite.runAction(SKAction.sequence([zoombieAnimation ,actionMove,actionMoveDone]))
    }


 //MARK: - ANIMATE FRAME AND MOVE ZOOMBIE
    func createAnimatedZoombie () -> SKSpriteNode {

        let animatedZoobieNode = SKSpriteNode(texture: spriteArray[0])

        let animationFrameAction = SKAction.animateWithTextures(spriteArray, timePerFrame: 0.2)

        let durationTime = SKAction.waitForDuration(0.1)

        let repeatAction = SKAction.repeatActionForever(animationFrameAction)

        let quenceAction = SKAction.sequence([durationTime, repeatAction])

        animatedZoobieNode.runAction(quenceAction)

        return animatedZoobieNode
    }
4

1 に答える 1

0

立派な兄弟であるジョセフ・ロード に感謝します。神に感謝します。スプライトキットのアトラス配列カウントプロパティを2で割るだけで問題を解決できました。このフォルダーには@2xと@3xの両方の画像を入れていたので、このアトラス フォルダは、@2x と @3x の画像を加算した数を返すために使用されます。

于 2015-11-13T08:03:08.133 に答える