gpt4 book ai didi

iOS 11 SpriteKit 游戏速度不会超过 30 FPS

转载 作者:行者123 更新时间:2023-11-30 12:20:09 24 4
gpt4 key购买 nike

我正在使用 Xcode beta 更新我的一款应用程序,使其适用于 iOS 11。在游戏中加入一些新功能后,我在测试时注意到,FPS 非常低。以前他们的水平可没有这么低。老实说,我不知道该给你们什么代码。这可能只是测试版的问题吗?还是我只是在游戏中塞了太多废话?

我的游戏只有 342MB。这是一款完全没有 3D 渲染的 2D 游戏。我唯一能想到的是我同时运行了太多 arc4random...

编辑:我认为这是导致问题的代码

    func getCollectable() -> SKSpriteNode {

var collecatble = SKSpriteNode()

if Int(randomBetweenNumbers(firstNum: 0, secondNum: 9)) == 4 {
//Come Back
if GamePlayController.instance.life! < 100 {
collecatble = SKSpriteNode(imageNamed: "MonsterRobot")
collecatble.name = "Monster"
collecatble.physicsBody = SKPhysicsBody(rectangleOf: collecatble.size)
collecatble.yScale = 0.09
collecatble.xScale = 0.09

}else{
collecatble.name = "Empty"
}
}else{

collecatble = SKSpriteNode(imageNamed: "Coin2")
collecatble.name = "Coin2"
collecatble.physicsBody = SKPhysicsBody(rectangleOf: collecatble.size)

}
if Int(randomBetweenNumbers(firstNum: 0, secondNum: 100)) == 51 {

collecatble = SKSpriteNode(imageNamed: "Slow icon")
collecatble.name = "SlowIcon"
collecatble.physicsBody = SKPhysicsBody(rectangleOf: collecatble.size)
collecatble.yScale = 0.05
collecatble.xScale = 0.05
}

collecatble.physicsBody?.affectedByGravity = false
collecatble.physicsBody?.categoryBitMask = ColliderType.DarkCloudAndCollectables
collecatble.physicsBody?.collisionBitMask = ColliderType.Player
collecatble.zPosition = 2


return collecatble

}



func randomBetweenNumbers(firstNum: CGFloat, secondNum: CGFloat) -> CGFloat {

return CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
}

最佳答案

这个问题很容易解决。确保您的代码以正确的顺序运行。当游戏加载时生成新的 Sprite 时,您需要确保有足够的内存。添加 Sprite 后将其删除可以解决我的问题。

关于iOS 11 SpriteKit 游戏速度不会超过 30 FPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44891931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com