在 Xcode Swift 中创建重复计时器的问题

Posted

技术标签:

【中文标题】在 Xcode Swift 中创建重复计时器的问题【英文标题】:Problems with creating a repeating timer in Xcode Swift 【发布时间】:2020-02-14 02:33:35 【问题描述】:

我目前正在为我的游戏编写一个重复计时器,以每秒生成一枚硬币,但是当我运行代码时,只有一枚硬币生成,然后自行删除,不再关注,这是我正在使用的代码示例,我确信对此有一个简单的答案,但我已经坚持了一天。

@objc let coin = SKSpriteNode(imageNamed: "Coin")

var gametimer = Timer()

override func didMove(to view: SKView) 

    gametimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(getter: coin), userInfo: nil, repeats: true)


      coin.position = CGPoint(x: self.size.width/2, y: self.size.height)
        coin.setScale(1)
        coin.zPosition = 1
         addChild(coin)


    let moveAction = SKAction.moveTo(y: 0, duration: 0.9)

    let deleteAction = SKAction.removeFromParent()

    coin.run(SKAction.sequence([moveAction,deleteAction]))

【问题讨论】:

计时器重复你在这一行的'selector'参数中命名的函数的代码:gametimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(getter: coin) ),用户信息:无,重复:真)。将生成硬币的代码放入该函数中。 【参考方案1】:

说明我的评论的基本示例:

// Timer property
var gameTimer = Timer()

// In viewDidLoad, for example, set the timer only once
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(spawnCoins), userInfo: nil, repeats: true)


// Place the code that should repeat in this function
@objc func spawnCoins()
       print(“new coin spawned!”)
    

【讨论】:

非常感谢,非常感谢您的帮助 没问题@AjsCoding :) 如果我的帖子回答了您的问题,请随时将其标记为正确答案和/或投票。干杯! 我发现了我的问题 我在两个相互独立的区域编写了硬币的代码 我只是没有意识到这一点,因为直到现在我还没有清理我的编码并且我试图投票你的答案,但因为我的声望低于 15,它不会因为某种原因显示,但会被记录

以上是关于在 Xcode Swift 中创建重复计时器的问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift UI/Xcode 中创建导航链接错误

如何减少在 Swift spritekit 中创建更多敌人的时间?

如何在 Swift Xcode 中创建自定义导航栏?

如何在情节提要中创建一个按钮以启动在 xcode swift 中使用 spritekit 创建的游戏

Xcode Swift 调试器不会显示在 if 语句中创建的变量

如何在Xcode + Swift 4中创建自定义UIBarButtonItem类?