gpt4 book ai didi

ios - 如何在sprite kit中使用SKEmitterNode实现 "fog of war"的效果?

转载 作者:行者123 更新时间:2023-11-29 10:41:31 25 4
gpt4 key购买 nike

我正在尝试使用 SKEmitterNode 创建着色器,有点像在洞穴中的口袋妖怪中: http://www.serebii.net/pokearth/maps/johto-hgss/38-route31.png

这是我目前的代码:

NSString *burstPath =
[[NSBundle mainBundle] pathForResource:@"MyParticle" ofType:@"sks"];

SKNode *area = [[SKNode alloc] init];

SKSpriteNode *background = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size:CGSizeMake(self.frame.size.width, self.frame.size.width)];
background.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));

SKEmitterNode *burstNode =
[NSKeyedUnarchiver unarchiveObjectWithFile:burstPath];
burstNode.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame));

burstNode.particleBlendMode = SKBlendModeSubtract;
[area addChild:background];
[area addChild:burstNode];
[self addChild:area];

这里是 SKEmitterNode:http://postimg.org/image/60zflqjzt/

我有两个想法。第一个是创建一个矩形 SKSpriteNode 并从矩形 SKSpriteNode 中删除 SKEmitterNode。这样,我们就有了一个中间有一个“孔”的黑色矩形,我们可以从中看到。

第二个是将矩形SKSpriteNode和SKEmitter节点添加到另一个SKNode(区域),然后设置SKEmitterNode的particleBlendMode,最后设置SKNode(区域)的alpha颜色函数。例如,如果一个像素的颜色为黑色,则该像素的 alpha 值为 1.0,而另一个像素为白色,则该像素的 alpha 值为 0.0。

这个问题可能与 How to create an alpha mask in iOS using sprite kit 重复在某些方面,但由于没有给出好的答案,我认为这不是问题。

非常感谢。

最佳答案

这些不是您要找的节点! ;)

粒子不能用于制造 war 迷雾,即使您可以让它们产生 war 迷雾,速度也会非常慢。

根据链接的屏幕截图,您实际上只需要一个带有“孔”的图像,即透明区域。图像应该是屏幕大小的,并且只是遮盖边框到你需要的程度。这将是一个不显眼的 war 迷雾,或者更确切地说,只是玩家周围黑暗的效果。

真正的 war 迷雾实现中,您发现世界的区域通常使用一种模式,在最简单的形式中,它只是移除(淡出)矩形黑色 Sprite 。

关于ios - 如何在sprite kit中使用SKEmitterNode实现 "fog of war"的效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24341712/

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