有没有办法用SpriteKit在2D游戏中模拟3D球的运动?

有没有办法用SpriteKit在2D游戏中模拟3D球的运动?,3d,2d,sprite-kit,3d,2d,Sprite Kit,我想知道是否有人知道一种模拟球的方法,例如在SpriteKit(2D框架)中以3D方式移动。比如一个正在滚动的足球,或者一个被剥光的台球,甚至是一个有红色球棍的棒球。我认为这种东西的2D处理使它看起来像是在一片冰上移动,而不是真实的滚动行为。这适用于冰球之类的对象,但不适用于球的真实滚动。任何关于做这件事的想法都会很好。我玩过一些游戏,这些游戏都能让它工作,开发人员声称他们使用的是2d引擎。我记得最近的一次是迷你们泳池游戏。他们声称使用了Cocos,如果我从我读到的文章中正确回忆的话,这是一个2

我想知道是否有人知道一种模拟球的方法,例如在SpriteKit(2D框架)中以3D方式移动。比如一个正在滚动的足球,或者一个被剥光的台球,甚至是一个有红色球棍的棒球。我认为这种东西的2D处理使它看起来像是在一片冰上移动,而不是真实的滚动行为。这适用于冰球之类的对象,但不适用于球的真实滚动。任何关于做这件事的想法都会很好。我玩过一些游戏,这些游戏都能让它工作,开发人员声称他们使用的是2d引擎。我记得最近的一次是迷你们泳池游戏。他们声称使用了Cocos,如果我从我读到的文章中正确回忆的话,这是一个2D游戏。

你可以使用3D动画软件包,如(Maya、3DSMax、modo、Cinema4D等),并设置滚动球的动画(平面图或侧视图取决于你的视图)。另外,根据你的球型,你可以保持很低的帧数,可能是15帧。然后将帧渲染为一系列PNG文件
Ball_0001@2x.png,球_0002@2x.png,球_0003@2x.png
,将它们放在一个图集中,并使用
SKAction
将它们分配给一个SKSpriteNode。在Sprite工具包中,您可以执行多种操作来修改动画,在设置动画序列以加速/减慢动画时,可以在
SKActions
上轻松输入、轻松输出、更改
SKAction
上的帧时间。如果您碰巧使用路径来控制精灵的移动,您还可以执行“跟随路径”操作,将动画精灵与移动方向对齐。这些可能不会直接起作用,但它们可能会给你一些想法,为你指明正确的方向

编辑: 若要使用少量帧,需要指定动画重复所需的时间。另外,请仔细考虑球上的图案,在下面的示例中,如果您看到球从侧面移动(并向右滚动),则只需渲染滚动120度的球的帧。因此,如果您将其滚动120(15帧),然后重复动画3次,您将获得360度滚动(45帧),但仅使用15帧。如果你使图案更小,那么你可以减少滚动量,减少所需的帧数,增加重复次数,然后你来设置你的动作


谢谢你。我也有同样的想法,但没有意识到你可以通过如此低的帧数。我原以为我需要以各种可能的方式滚动球,从而为一个球生成数百个png文件,但我现在明白了,您已经为我指明了一个可以让我继续进行的方向。再次感谢。没问题,我更新了一点答案,希望它能给你一些想法。