如何在objective-c中实现SKActionTimingFunction?我到处寻找,我刚刚在swift中找到了一个例子.
谢谢!
我不确定我所寻求的是否可行,但我只是在检查以确保我没有做到这一点.
目前我有两个序列,它们同时运行.每个序列通过等待3秒开始,然后一个序列缩放节点,另一个序列调整该节点的alpha.所以代码看起来像这样:
node.runAction(SKAction.sequence([animationWait, animationScale]))
node.runAction(SKAction.sequence([animationWait, animationAlpha]))
Run Code Online (Sandbox Code Playgroud)
但是有没有办法在一个序列中同时运行animationScale和animationAlpha?所以它看起来像这样(这不起作用,但我希望你能看到我正在尝试做的事情):
node.runAction(SKAction.sequence([animationWait, (animationScale, animationAlpha)]))
Run Code Online (Sandbox Code Playgroud) 我有两个函数可以在 GamePlay 场景中生成敌人。我尝试使用 NSTimers 每 0.3 秒调用一次它们,但是当应用程序失去焦点时,计时器会继续运行并产生数百个敌人。
我读到 SKActions 会自动暂停,所以我尝试实现一个,但我收到一条错误消息:
无法使用类型为“(SKAction!)”的参数列表调用“repeatActionForever”
无法使用类型为“((), queue: (Double))”的参数列表调用“runBlock”
代码:
override func didMoveToView(view: SKView) {
superblockRandomizer = NSTimeInterval(arc4random_uniform(5) + 5)
runAction(SKAction.repeatActionForever(SKAction.sequence(SKAction.runBlock(spawnEnemies(), queue: (0.3)))))
runAction(SKAction.repeatActionForever(SKAction.sequence(SKAction.runBlock(spawnSuperBlocks(), queue: (superblockRandomizer)))))
}
Run Code Online (Sandbox Code Playgroud)
我想运行的两个函数是 spawnEnemies 和 spawnSuperBlocks。任何帮助将不胜感激!
编辑:当场景移动到视图时,它会立即生成超级块。这是我为超级块获得的代码
let spawnSuperBlock = SKAction.sequence([SKAction.runBlock(spawnSuperBlocks), SKAction.waitForDuration(superblockRandomizer)])
runAction(SKAction.repeatActionForever(spawnSuperBlock))
Run Code Online (Sandbox Code Playgroud)
它不应该在产卵前至少等待 superblockRandomizer 时间吗?
我目前有下面的代码,它每 2 秒重复一次操作,但我希望它在完全随机的时间段内发生,例如 1 到 10 秒之间的某个时间,我使用 arch4random 尝试了几行不同的代码,其中没有工作了。我希望这是一个简单的修复,非常感谢任何建议。
谢谢 runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(callBird), SKAction.waitForDuration(2.0)])))
我有一个简单的精灵运动,我用以下行触发:
actionMove = SKAction.moveTo(CGPoint(x: size.width + CGFloat(KUGELWIDTH / 2), y: yPos), duration: NSTimeInterval(actualDuration))
Run Code Online (Sandbox Code Playgroud)
然后我runAction
按以下方式打电话:
let actionMoveDone = SKAction.removeFromParent()
kugel.runAction(SKAction.sequence([actionMove, actionMoveDone]))
Run Code Online (Sandbox Code Playgroud)
令我感到困惑的是,在运行过程中改变SKAction
中间的速度(持续时间).这可能是不可能的,在这种情况下,是否有另一种方法来调用我的精灵周围移动精灵Scene
,我可以在它的运动中改变精灵的速度?
我很难删除1个SKaction.我知道如果我删除两个SKactions removeAllActions()
但我怎么去只删除1仍然会有另一个动作?
skaction ×6
swift ×5
sprite-kit ×4
ios ×2
objective-c ×1
random ×1
repeat ×1
sequence ×1
xcode ×1