Я пытаюсь выполнить повторяющуюся задачу, где я могу изменить задержку, в которой он повторяется. Вот текущий код, я использую:Изменение последовательности повторяющихся задач во время работы
var actionwait = SKAction.waitForDuration(self.wait)
var actionrun = SKAction.runBlock({
self.count+=1
if (self.count % 2 == 0 && self.wait > 0.2){
self.wait -= 0.1
actionwait.duration = self.wait
}
for node in self.children{
if (node.isMemberOfClass(Dot)){
node.removeFromParent()
}
}
var radius = CGFloat(arc4random_uniform(100) + 30)
var newNode = Dot(circleOfRadius: radius)
var color = self.getRandomColor()
newNode.fillColor = color
newNode.strokeColor = color
newNode.yScale = 1.0
newNode.xScale = 2.0
newNode.userInteractionEnabled = true
newNode.setScene(self)
newNode.position = newNode.randomPos(self.view!)
self.addChild(newNode)
})
self.runAction(SKAction.repeatActionForever(SKAction.sequence([actionwait,actionrun])))
Тем не менее, представляется, что, поскольку последовательность уже повторять, изменяя длительность задержки ничего не влияет.
Он обновляет перед каждым кадр делает, так это точный судья времени, который может изменить FPS? Я не уверен, как создать таймер с помощью метода обновления. Должен ли я сделать счетчик и добавить 1 каждый рендер кадра, пока он не достигнет определенного числа? – Kendel
Что такое 'self.delta'? – Kendel
Я добавил дополнительную информацию – hamobi