gpt4 book ai didi

swift - SpriteKit : I'd need something like . 暂停ActionForKey()?

转载 作者:行者123 更新时间:2023-11-30 14:17:48 25 4
gpt4 key购买 nike

我对如何解决以下问题有点困惑:

我的滚动游戏会产生从 plist 加载的不同类型的障碍物。生成由 SKAction 延迟,每个障碍物的持续时间由 y 位置计算。

已更新以反射(reflect) Wraithseeker 的回答。

这是在其中启动所有计时器的设置代码didMoveToView():

for obstacleTuple in level.obstacleTuples {
let positionY = obstacleTuple.positionY
let obstacle = obstacleTuple.obstacle as! SKNode

let duration = NSTimeInterval(positionY / kObstacleDistancePerSec)

// **Update**: Instead of running the wait action on the scene...
//runAction(SKAction.waitForDuration(duration), completion: {
// I should run it on the foregroundNode...
foregroundNode.runAction(SKAction.waitForDuration(duration), completion: {
self.foregroundNode.addChild(obstacle)
})
}


// And then toggle the pause property on that node to stop and resume.
let foregroundNode.paused = foregroundNode.paused == true ? false : true

我希望有特殊事件(根据用户操作而发生),在此期间上述障碍物的生成会进一步延迟,并且玩家可以收集奖励对象。所以基本上,我需要为等待 SKAction 分配一个键,然后使用 .pauseActionForKey() 方法(而不是 .removeActionForKey())。

是否可以用它来扩展SKAction?有更好的方法来实现我想要做的事情吗?

最佳答案

解决此问题的一种方法是创建一个空的 SKNode 并将这些操作分配给您想要暂停的节点。这样,当您暂停操作时,它不会暂停整个游戏,因为您此时正在使用 selfSKActions 分配给场景。

要暂停操作,只需按照 sangony 的建议对空的 SKNode 调用暂停即可。

一个例子

myEmptyNode.pause() //

关于swift - SpriteKit : I'd need something like . 暂停ActionForKey()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30912737/

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