不旋转节点的逼真节点变形缩放

问题描述

我有一个 SwiftUI/SpriteKit 游戏,其中有弹跳的球。球是 SKSpriteNodephysicsBody,并且它们确实启用了旋转。

我想要实现的是一种柔体效果,当球与某物碰撞时,它们会变形。想一想网球撞击地面时是如何变形的:侧面稍微向外推出,顶部/底部挤压在一起,形成一种蛋形。

要做到这一点,我首先认为我可以使用 scaleX(to:y:duration:)。但这只有在球在某物上直接上下弹跳时才有效。如果碰撞发生在球表面的不同部分(例如“2点钟”位置),那么标准的 X/Y 缩放当然是错误的。

所以,我可以用 scaleX(to:y:duration:) 来完成:

enter image description here

但我无法做到这一点:

enter image description here

因为球是根据物理学旋转的,而且球所用的图像是有纹理的,无法通过简单地将它们旋转到正确的角度来解决问题变形。

另一种方法可能是使用 SKWarpGeometryGrid 范式扭曲球,但我不确定如何实现这一点,所以我希望有更好的选择。

如何在不旋转球的情况下缩放/挤压旋转轴上的球?我应该使用扭曲几何体,还是有更简单的方法来实现这种效果

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)