XCode Spritekit,与png的非透明部分冲突

时间:2014-02-28 19:51:49

标签: iphone xcode collision

我遇到同样的问题:SKSpriteKit, detect non-transparency parts

我的帖子已从那里删除。我不知道为什么,在其他论坛,这是一个双职位! 但好吧,如果你喜欢那样的话。可怜的丹尼仍然没有答案!

好的,这里又出现了一个问题: 有两个带透明区域的png文件。喜欢在danny huang的帖子中。 如果他们碰撞“ - (void)didBeginContact:(SKPhysicsContact *)联系”方法火了。 但我们所寻求的是他们只是与图像的非透明区域相混合。

这是一个小代码剪辑:

...
SKTexture *nyanTexture1 = [SKTexture textureWithImageNamed:@"test.png"];
nyanTexture1.filteringMode = SKTextureFilteringNearest;
nyan = [SKSpriteNode spriteNodeWithTexture:nyanTexture1];
nyan.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:nyan.size.height / 2];
nyan.physicsBody.dynamic = YES;
nyan.physicsBody.allowsRotation = NO;
...
nyan.physicsBody.categoryBitMask = nyanKategorie;
nyan.physicsBody.collisionBitMask = worldKategorie | tunnelKategorie;
nyan.physicsBody.contactTestBitMask = worldKategorie | tunnelKategorie;
...
WasserFallTexture1 = [SKTexture textureWithImageNamed:@"Wasserstrahl1.png"];
SKSpriteNode* tunnel1 = [SKSpriteNode spriteNodeWithTexture:WasserFallTexture1];
tunnel1.position = CGPointMake( 0, y );
tunnel1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:tunnel1.size];
tunnel1.physicsBody.dynamic = NO;
tunnel1.physicsBody.categoryBitMask = tunnelKategorie;
tunnel1.physicsBody.contactTestBitMask = nyanKategorie;
...
[tunnel addChild:tunnel1];

如果没有Spritekit的漂亮引擎,我可以做到这一点。我也实现了它,但我想知道使用SpriteKit引擎的方法。 我知道我可以改变“SKPhysicsBody”类型和区域,但我正在寻找一个可以捕捉两个png文件非透明区域之间碰撞的解决方案。

谢谢, 萨姆

1 个答案:

答案 0 :(得分:1)

听起来真的看到你需要的物理机构在行动。 SKView上有一个名为showsPhysics的媒体资源。将其设置为YES,您可以看到精灵的物理实体。