gpt4 book ai didi

ios - 在 iOS 的 cocos2d 中添加颜色

转载 作者:行者123 更新时间:2023-11-29 11:09:03 26 4
gpt4 key购买 nike

我正在尝试使用 cocos2d 做类似 RGB 圆的事情:

enter image description here

我有可移动的圆圈(一个用于 R,另一个用于 B,另一个用于 G),我想自动计算相交圆的颜色(无需在特定区域使用新颜色创建某些东西 - 这就是解决方案我在用)。

有没有办法自动添加颜色?

我现在在做什么?

目前,我在 CCSprite 中使用 1x1 空白 png(作为纹理),然后更改 CCSprite 的颜色(sprite.color = ccc3(r, g, b) 每个圆)。

我尝试了什么?

我尝试使用 mySprite.blendFunc = (ccBlendFunc) { GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA }; 在我的 Sprite 中使用不同的混合模式 甚至添加了一些不透明度(直接在 Sprite 中或纹理中使用模式 [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888])但我无法获得我想要的效果。

我试图在 website with several blending modes 中找到一个组合但我没有找到有效的组合。

最佳答案

不推荐使用 1x1 像素纹理。我认为旧设备甚至不会显示它们。至少使用 2x2 或更好的 4x4。不确定哪个是最小值。

如果您打算每个像素有一个 Sprite,请记住每个 Sprite 大约为 400 字节(取决于 cocos2d 版本)。这意味着用 Sprite 像素填充整个 320x480 屏幕将消耗近 60 MB 的内存!

我认为仅使用混合模式无法获得与图片中相同的结果。 You can experiment here .您必须编写一个着色器程序,或者以其他方式将每个子部分渲染为一个填充多边形,其颜色由每个重叠 Sprite 的基色决定。

由于您只能将混合模式应用于整个 Sprite (在本例中为圆形),混合模式对于一个交叉点可能是正确的,但它也会与背景混合,这不是您想要的。我不是 100% 确定,但我认为这种 RGB 颜色添加不适用于混合模式是有技术原因的。也许对 OpenGL ES 渲染技术有更好理解的人可以提供帮助。

关于ios - 在 iOS 的 cocos2d 中添加颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350057/

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