【问题标题】:Spritekit FPS drop problemsSpritekit FPS 掉落问题
【发布时间】:2021-01-25 16:19:58
【问题描述】:

我正在构建的一个应用程序在创建精灵节点时会降低 FPS,我已经搜索了很多帖子,但不知道为什么,如果有人有任何想法,我将不胜感激!

问题出现在模拟器和设备上。

创建节点的代码如下。

谢谢。

@objc func createEnemy(){

        let randomDistribution = GKRandomDistribution(lowestValue: -350, highestValue: 350)
        let sprite = SKSpriteNode(imageNamed: "Virus")

        sprite.position = CGPoint(x: 700, y: randomDistribution.nextInt())
        sprite.name = "Virus"
        sprite.zPosition = 1
        sprite.size = CGSize(width: 70, height: 70)
        addChild(sprite)

        sprite.physicsBody = SKPhysicsBody(texture: sprite.texture!, size: sprite.size)
        sprite.physicsBody?.velocity = CGVector(dx: -500, dy: 0)
        sprite.physicsBody?.linearDamping = 0

        sprite.physicsBody?.contactTestBitMask = 1
        sprite.physicsBody?.categoryBitMask = 0
        sprite.physicsBody?.affectedByGravity = false

        createBonus()
    }

    func createBonus(){

        let randomDistribution = GKRandomDistribution(lowestValue: -350, highestValue: 350)
        let sprite = SKSpriteNode(imageNamed: "Vaccine")

        sprite.position = CGPoint(x: 700, y: randomDistribution.nextInt())
        sprite.name = "Vaccine"
        sprite.size = CGSize(width: 70, height: 70)
        sprite.zPosition = 1
        addChild(sprite)

        sprite.physicsBody = SKPhysicsBody(texture: sprite.texture!, size: sprite.size)
        sprite.physicsBody?.velocity = CGVector(dx: -500, dy: 0)
        sprite.physicsBody?.linearDamping = 0

        sprite.physicsBody?.contactTestBitMask = 1
        sprite.physicsBody?.categoryBitMask = 0
        sprite.physicsBody?.collisionBitMask = 0
        sprite.physicsBody?.affectedByGravity = false
    }

【问题讨论】:

    标签: xcode sprite-kit skspritenode


    【解决方案1】:

    您是否尝试过预加载纹理?

     let image = SKTexture(imageNamed: "nodeImage")
    
    
    override func didMove(to view: SKView) {
    
       image.preload{
    
         print("image has been preloaded")
    
        }
    }
    

    【讨论】:

    • 感谢您的建议,它似乎奏效了一点,但仍然有很糟糕的延迟。还是谢谢你!
    • 你是在模拟器上测试吗?
    • 模拟器和两个设备
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多