gpt4 book ai didi

ios - 如何像 "cham cham"那样创建 Sprite 表面

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:05:40 27 4
gpt4 key购买 nike

我的问题可能有点太宽泛了,但我会考虑这个概念。我怎样才能像他们在“Cham Cham”应用程序中那样创建表面

https://itunes.apple.com/il/app/cham-cham/id760567889?mt=8 .

我在应用程序中完成了大部分工作,但随着用户触摸而发生的表面变化却大不相同。你可以改变它的高度,它会变大和变小。如何使用 sprite kit 来完成这背后的概念是什么,那里的任何人都可以解释一下。

谢谢

最佳答案

来自 Cham Cham 开发人员的答案:)

让我把解释分成不同的部分:

注意:由于项目启动时间较早,因此使用纯OpenGL实现。 SpiteKit 实现可能不同,但您只需要将想法映射到它即可。

定义地面

地面由一组点表示,这些点使用 Hermite Spline 进行插值.基本上,游戏使用一组定义表面的点,以及每个控制点之间的一组点,如下所示:

enter image description here

红点是控制点,中间的所有东西都是使用提到的 Hermite 插值法计算的。中间的绿点跟它没有关系,反而让整个看起来像胸部:)

您可以选择任意数量的步数以使您的胸部看起来尽可能光滑,但这更多地与性能有关。

控制形状

您需要做的就是允许用户移动控制点(或其中的一些,例如在 Cham Cham 中;您可以定义每个点可以移动的范围等)。重新计算插值会产生一个改变的形状,它始终保持平滑(假设您已经选择了足够多的中间点)。

对事物进行纹理处理

同样,如何应用纹理取决于您。在 Cham Cham 中,我们使用一个大纹理来保存背景图像,并在每次形状变化时重新计算纹理坐标。您可以尝试更复杂的算法,例如挤压纹理或任何您认为合适的算法。

至于表面纹理(覆盖地面的纹理——草、冰、沙等)——你可以使用名为 Triangle Strips 的东西,“底部”顶点位于曲面的每个插值点,“顶部”顶点凸起(通过在该点的法线方向上将它们抵消“底部”顶点)。

渲染它

最简单的方法是利用一些曲面分割库,例如 libtess .它会做什么将你的边界线(由内插点组成)隐藏成一组三角形。它将保留纹理坐标,以便您可以将这些三角形提供给渲染器。

SpriteKit 注释

不幸的是,我对 SpriteKit 引擎不是很熟悉,所以不能保证你能一对一地复制这个想法,但请随时评论实现中的挑战性方面,我会尽力帮助。

关于ios - 如何像 "cham cham"那样创建 Sprite 表面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23027143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com