【问题标题】:Masking SKSpriteNode as liquid将 SKSpriteNode 掩蔽为液体
【发布时间】:2014-05-24 01:43:51
【问题描述】:

我想创建一个液体动力学。我搜索了很多,创建了随着设备运动移动的球,但我不知道如何让球看起来像液体。我想这是一些面具,但我没有找到如何去做。有人可以帮我吗? 谢谢。

【问题讨论】:

标签: ios sprite-kit calayer skphysicsbody


【解决方案1】:

游戏中看起来像液体的东西通常遵循以下模式(有很多方法可以做到这一点,使用过滤器、着色器、您自己的自定义 opengl 东西):

  1. 很多球相邻

  2. 球具有 alpha 渐变。所以基本上如果你在 Photoshop 中用黑色在 alpha 通道上做一个径向渐变,你会得到一个非常模糊的球。或者只是在 Photoshop 中画一个黑球并模糊它。你明白了。

  3. 你硬对比(阈值)一切。实际上,这是在某个阈值下执行 1.0 alpha 或 0.0 alpha。所以要么开要么关。

【讨论】:

    【解决方案2】:

    这个想法对我来说很清楚。不知道真正的过滤器是什么。 想通了,SKSpriteNode是nodeWithImage,图像是一个模糊球。物理体是一个比图像更小的球体(因此这些球体可以相互重叠并成为“一体”)。在场景中设置阈值的过滤器,如下所示:

    CIFilter *filter = [CIFilter filterWithName:@"CIColorPosterize"];
    [filter setValue:@(2.0) forKey:@"inputLevels"];
    [scene setFilter:filter];
    [scene setShouldEnableEffects:YES];
    

    就是这样,如果有人读过它并遇到问题,我们非常欢迎给我发信息寻求帮助。

    【讨论】:

    • 所以当我在场景中启用效果时,(有或没有过滤器)当我添加一个对象时,它基本上会在屏幕上涂抹并且永远不会消失。知道这是怎么回事吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 2017-12-07
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    相关资源
    最近更新 更多