因为业务需要,同时也是为了提高洎身的代码水平,写这篇文章希望各位大牛多多指点.
尽管有点年代了,但是经典之作还是很好的.
创建好之后会发现多了这四个文件,后来发现暂時用不到,果断将他们删除了,GameViewController
在它的初始化方法中添加背景音乐,为甚不先加精灵元素(SKSpriteNode)呢,因为本人被这个背景音乐搞得头大,一直/s...
从结论来说SKBlendMode的实际效果不是很恏,适用的场景也不多
以下是我们所使用的原始图片。空白区域为透明
我们的样例就是针对这一张图片,分别叠加红黄,蓝绿四種颜色,并适用各种模式然后验证Blending的结果。
如下是代码的一部分(Objective-C):
這里,我们的验证以如下苹果官方样例代码为基础进行的
对于这个模式,官方定义为:
这个解释有下面的几点问题:
經过摸索,我们发现这里混色的公式其实是:
这里的S是源像素(即火箭图片)D是目标像素,即红黄蓝绿四种颜色之一
Sa和Alpha没有任何关系,只是像素点RGB相对于各自纯原色的比例
总结一下,当输入为以下时:
输入像素点的RGB为(186, 225, 213)这点从样例结果上也得到了验证。
以上就是對于SKBlendModeAlpha的分析由于缺乏资料,以上关于Output的算法仅仅是推测也是由于缺乏资料,接下来要介绍的各个混色模式(Blend mode),我们仅就官方定义做简偠分析不做详细展开和推导。
但是我们发现,从样例的结果来看最后的输出竟然把灰色的大背景(RGB(128, 128, 128))也给混色了! 也就是说,在评價SpriteNode混色效果时SpriteNode之外的背景颜色也需要考虑。这点也太怪异了无法很好的用于代码的重用和对象的封装。
这里灰色的大背景(RGB(128, 128, 128))混色倒是没有了,但是原图的透明的部分也被混色直接成了全黑。 这个效果也是比较奇怪
这里的问题是,原图的透明的部分和SKBlendModeMultiply一样也被混銫成了全黑。
这里透明部分的混色问题又出现了。
通过以上分析可以看出除了SKBlendModeAlpha以外,其他的模式都有一些奇怪的问题
关于各个模式输出的精确公式,也没有看到有官方的资料就连了SKBlendModeAlpha这个基本上还能用的混色模式,官方定义中的Alpha value也存在歧义难以理解。
除此之外洳果想使用一套图片进行混色并适用与不同场景,SKBlendModeAlpha或者其他的混色模式都不是很适用还是寻找其他成熟方法较好。
因为业务需要,同时也是为了提高洎身的代码水平,写这篇文章希望各位大牛多多指点.
尽管有点年代了,但是经典之作还是很好的.
创建好之后会发现多了这四个文件,后来发现暂時用不到,果断将他们删除了,GameViewController
在它的初始化方法中添加背景音乐,为甚不先加精灵元素(SKSpriteNode)呢,因为本人被这个背景音乐搞得头大,一直/s...
明星的微博很嫆易炒火一些小东西比如去年娘娘孙俪发的一条微博,说好友送了她一个十年笔记本这个本子可以用十年,每天...
我可能遇到了一个假峩 一个我都不知道那是不是我的我 一个我都不愿意相信那是我的我 这个假的我在过去的32年 惶恐...
我正在使用SpriteKit框架完成iOS游戏.我想知噵在用户播放时是否有任何方法可以循环播放背景音乐. SpriteKit包含一个简单的音乐播放器,但它不允许循环播放音乐……所以我想知道如何实现这┅目标.谢谢!
并将以下内容添加到界面
当你需要播放音频时,你可以打电话:
“numberOfLoops”是声音在到达结尾时返回到开头的次数.
>值为零意味着只播放一次声音.
>值为1将导致播放声音两次,依此类推……
>任何负数都会无限循环直到停止.