使用SpriteKit在2D游戏中模拟3D球运动的方法有哪些?

4

我想知道是否有一种方法在SpriteKit(一个2D框架)中模拟例如足球滚动、条纹台球或甚至带有红色线缝的棒球等三维运动的球。我认为这种类型的2D处理使其看起来像是在一张冰上移动,而不是真实地转动。对于像曲棍球一样的物体可以这么做,但对于球的真实滚动效果则不行。如果有关于如何实现这一点的想法,那就太好了。我玩过一些能够实现此功能的游戏,并且开发人员声称他们使用了2D引擎。我最近记得的是Miniclips Pool游戏。他们声称使用的是Cocos,而且如果我没记错的话,这是一款2D游戏。

1个回答

4
您可以使用像Maya、3DSMax、modo、Cinema4D等3D动画包,制作一个滚动的球(根据您的观察角度,可以是平面或侧视图)。也可以根据球的图案,将帧数保持较低,例如15帧。然后将这些帧渲染为一系列PNG文件Ball_0001@2x.png、Ball_0002@2x.png、Ball_0003@2x.png,将它们放入图集中,并使用SKAction分配给一个SKSpriteNode。在Sprite Kit中,有许多方法可以修改动画,如在SKActions上进行Ease-in、Ease-out,当您设置动画序列时调整SKAction的帧时间以加快/减慢动画速度。如果您使用路径控制精灵的移动,则还可以使用跟随路径来使动画精灵与行进方向对齐。这些可能不能直接帮助您,但可能会给您一些指导方向的想法。
编辑:
要使用少量的帧数,您需要指定动画重复的时间。同时,请仔细考虑球的图案,在下面的示例中,如果您从侧面观看球(并且它向右滚动),那么您只需要为球滚动120度渲染帧。因此,如果您滚动120度(在15帧中),然后重复动画3次,您将获得360度的滚动(45帧),但仅使用了15帧。如果您使图案更小,则可以减少滚动量,减少所需的帧数并增加重复次数,然后就可以设置SKActions。

非常感谢。我也有同样的想法,但没有意识到可以使用如此低的帧数。我原以为需要以每种可能的方式滚动球,从而为一个球生成数百个png文件,但现在我明白了,你指引了我一个方向,让我能够继续进行。再次感谢。 - JoeGamer
没问题,我稍微更新了答案,希望能给你一些想法。 - fuzzygoat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接