gpt4 book ai didi

xcode - 我如何在 Swift 中永远重复一个 Action ?

转载 作者:搜寻专家 更新时间:2023-10-30 22:28:46 24 4
gpt4 key购买 nike

http://i.imgur.com/xkWTk9i.png我已经得到了这个从上到下的矩形。我遇到的问题是我希望它每 2 秒重复一次,以便另一个矩形跟随它。我希望我的代码每 2 秒生成一次矩形,并让它重复,就像 flappy bird 对绿色管道所做的那样。谢谢你。 (我之前让这个工作,但我错误地删除了我的项目并且无法弄清楚我首先是如何做到的。)我在 Swift 中使用 Spritekit。

.

 class GameScene: SKScene {
let sprite = SKSpriteNode(imageNamed: "Rectangle 12")

override func didMoveToView(view: SKView) {
self.addChild(sprite)

//run doAction function
doAction()

}


//movement of rectangle


func createRectangle() {
let moveToBottom = SKAction.moveByX(0, y: 0 - self.frame.size.width , duration:
NSTimeInterval (3.0))

let removeTheNode = SKAction.removeFromParent()
let moveAndRemovePipes = SKAction.sequence([moveToBottom, removeTheNode])
let repeatAction = SKAction.repeatActionForever(moveAndRemovePipes)
sprite.xScale = 1
sprite.yScale = 1
sprite.position = CGPoint(x:0,y:0)
sprite.runAction(repeatAction)


}
//spawn multiple rectangles after 3 or 4 seconds

func doAction() {
let generateRectangles = SKAction.sequence([
SKAction.runBlock(self.createRectangle),
SKAction.waitForDuration(NSTimeInterval(3.0))])
let endlessAction = SKAction.repeatActionForever(generateRectangles)
runAction(endlessAction)
}
}

最佳答案

您可以使用 NSTimer 重复函数执行。

override func didMoveToView(view: SKView) {
self.addChild(sprite)

var timer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: "doAction", userInfo: nil, repeats: true)

}

这将每 2 秒重复执行一次函数。

编辑:

你也可以这样做:

override func didMoveToView(view: SKView) {
self.addChild(sprite)

runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(doAction), SKAction.waitForDuration(1.0)])))

}

关于xcode - 我如何在 Swift 中永远重复一个 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26915390/

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