swift - 应用程序运行后崩溃?

标签 swift sprite-kit

我正在尝试制作一个带有弹跳球的游戏,并且我想每 8 秒生成一个球。目前,它在产卵后不会移动。我遇到的问题是,第一个球生成后,应用程序会在接下来的 5 秒内崩溃。我不知道为什么会发生这种情况。我将cheduledTimerWithTimeInterval() 放在touchesBegan 函数中。

func scheduledTimerWithTimeInterval(){
    Enemytimer = Timer.scheduledTimer(timeInterval: 8, target:self, selector:#selector(GameScene.spawnEnemies), userInfo:nil, repeats:true)
}
func randomBetweenNumbers(firstNum: CGFloat, secondNum: CGFloat) -> CGFloat{
    return CGFloat(arc4random()) / CGFloat(UINT32_MAX) * abs(firstNum - secondNum) + min(firstNum, secondNum)
}

func spawnEnemies(){
    let xPos = randomBetweenNumbers(firstNum: 0, secondNum:frame.width)
    let yPos = randomBetweenNumbers(firstNum: 0, secondNum: frame.height)
    enemies.size = CGSize(width: 20, height:20)
    enemies.color = UIColor(red:255.0,green:0.0,blue:0.0,alpha:1.0)
    enemies.colorBlendFactor = 1.0
    enemies.position = CGPoint(x: xPos, y:yPos)
    enemies.physicsBody?.affectedByGravity = false
    self.addChild(enemies)

最佳答案

您很可能遇到内存问题。我会将 ScheduledTimerWithTimeInterval 方法移出 TouchBegan。现在,每次用户触摸屏幕时,游戏都会启动一个新的计时器(而不启动其他计时器)。将 ScheduledTimerWithTimeInterval 移动到 viewDidLoad 或类似 startGame 的内容,以确保它只被调用一次。

关于swift - 应用程序运行后崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009429/

相关文章:

swift - 匹配 AppKit 和 SpriteKit 颜色

ios - SKNode addChild 上的奇怪随机崩溃

ios - UITableView 自动调整大小行约束在 iPhone 6Plus 上神秘地打破

iOS( swift ): Encoding/Decoding Enums

ios - AudioKit "disconnected state"与链中节点的创建顺序相关的崩溃

ios - 错误: CoreData: warning: Unable to load class named '' for entity 'Receipt' . 但是类被删除了

ios - 返回 GameScene 时内存增加

ios - 使节点动态仅适用于一个对象 Swift 和 Spritekit

ios - 创建SKScene,init(fileNamed :) vs init(size :)

ios - 无法删除 UITableView 中的行