作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,所以我在这里尝试了一些不同的方法,但没有任何效果。我有十几个 Sprite 节点,每个节点都需要:
一个。向下移动屏幕,同时缩放到更大的尺寸(即这两个同时发生)
然后向上移动屏幕,同时缩小到原始大小(这些也同时发生)
通常我认为这将适用于一个序列并将缩放和移动 Action 分组为 2 个 block ,但它没有奏效。以下命令让节点执行一次:
block1.runAction(SKAction.runBlock({
self.block1.runAction(moveDownLeft)
self.block1.runAction(scaleBlock)
let nodelay = 0 * Double(NSEC_PER_SEC)
let notime = dispatch_time(DISPATCH_TIME_NOW, Int64(nodelay))
//during delay
dispatch_after(notime, dispatch_get_main_queue()) {
//after delay
self.block1.runAction(moveUpLeft)
self.block1.runAction(scaleBlockBack)
}
})
)
但是当我引入repeatActionForever
时,整个游戏都卡住了。
为什么我不能永远循环现有代码?如何同时运行这 2 个操作?
最佳答案
你遇到的大问题是 block 不等待。它只是运行代码。所以发生的事情是你正在开始它到达 block 末尾的 Action ,并且因为你正在永远重复它即使 Action 没有完成它也会再次调用它。这导致该 block 被尽可能快地调用。
我不完全确定您希望在哪里延迟,但像这样的事情应该会起作用或让您朝着正确的方向开始。
let delay = SKAction.waitForDuration(4.0) //whatever your delay is
let scaleDownGroup = SKAction.group([moveDownLeft, scaleBlock])
let scaleUpGroup = SKAction.group([moveUpLeft, scaleBlockBack])
let sequence = SKAction.sequence([scaleDownGroup, delay, scaleUpGroup])
let repeat = SKAction.repeatActionForever(sequence)
self.block1.runAction(repeat)
希望对您有所帮助。
关于swift - 同时运行 2 个 Action ?游戏卡顿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30158101/
我想制作一张这样的 ps3 卡: http://gamercards.exophase.com/2516.png 使用来自 ps3 网站的数据,这个 http://us.playstation.com
我是一名优秀的程序员,十分优秀!