我正在尝试使用 SpriteKit 创建传送带效果,如下所示
我的第一 react 是创建一个比屏幕大的传送带图像,然后用 Action 重复移动它。但这似乎不太好,因为它取决于屏幕尺寸。
有没有更好的方法来做到这一点?
很明显,我想把东西(可以独立移动)放在传送带上,这样节点就是一个带有正在移动的子 Sprite 节点的 SKNode。
更新:我希望传送带能够“视觉上”移动;因此线条的移动方向给人一种运动的印象。
最佳答案
将physicalsBody
应用于所有需要在传送带上移动的 Sprite ,并将affectedByGravity
属性设置为NO。
在此示例中,我假设代表传送带的 spriteNode 称为“传送带”。此外,所有需要移动的 Sprite 节点都将字符串“moveable”作为其 name
属性。
然后,在您的 -update: 方法中,
-(void)update:(CFTimeInterval)currentTime
{
[self enumerateChildNodesWithName:@"moveable" usingBlock:^(SKNode *node, BOOL *stop{
if ([node intersectsNode:conveyor])
{
[node.physicsBody applyForce:CGVectorMake(-1, 0)];
//edit the vector to get the right force. This will be too fast.
}
}];
}
之后,只需将所需的 Sprite 添加到正确的位置,您就会看到它们自行移动。
对于动画,最好使用可以在 Sprite 上循环的纹理数组。
或者,您可以添加和删除一系列带有剖面图像的小 Sprite ,并像移动在传送带上移动的 Sprite 一样移动它们。
关于ios - SpriteKit传送带,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040217/