在 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 spritekit 中创建更多敌人的时间?
如何在情节提要中创建一个按钮以启动在 xcode swift 中使用 spritekit 创建的游戏