gpt4 book ai didi

ios - 在 Sprite Kit 中,如何使坠落物体在相交时不会受到其他物体的影响?

转载 作者:行者123 更新时间:2023-11-29 02:24:55 25 4
gpt4 key购买 nike

好的,所以我有 OBJ A 一个坠落的物体。 OBJ B 就像一枚硬币……我想收集它。当与这两个对象相交时。 obj b 影响 obj a 的下落速度/轨迹..

我正在使用这个:

- (void)didBeginContact:(SKPhysicsContact *)contact

如何使“obj b”与“obj a”相交时不影响“obj a”的下落速度或轨迹?

这是“obj a”:

        ship = [SKSpriteNode spriteNodeWithImageNamed:@"theShip"];
ship.name=@"ship";
ship.anchorPoint=CGPointMake(0.5, 0.5);
ship.size=CGSizeMake(100, 50);
ship.position=CGPointMake(CGRectGetMidX(myWorld.frame), 0);
ship.physicsBody.dynamic = YES;
[SKPhysicsBody bodyWithCircleOfRadius:50];
ship.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:ship.frame.size.width * 0.5];
ship.physicsBody.allowsRotation=NO;
ship.physicsBody.categoryBitMask=shipCategory;
ship.physicsBody.contactTestBitMask = coinCategory | padCategory;

这是“obj b”:

Coin *node = [Coin node];
[node setPosition:position];
[node setName:@"node_coin"];

[node setCoinType:coinType];
SKSpriteNode *sprite;
if (coinType == COIN_NORMAL) {
sprite = [SKSpriteNode spriteNodeWithColor:[UIColor yellowColor] size:CGSizeMake(50, 50)];
} else if (coinType == COIN_DOUBLE){
sprite = [SKSpriteNode spriteNodeWithColor:[UIColor redColor] size:CGSizeMake(50, 50)];
}else if (coinType == COIN_TRIPLE){
sprite = [SKSpriteNode spriteNodeWithColor:[UIColor blueColor] size:CGSizeMake(50, 50)];

}
[node addChild:sprite];

node.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];
node.physicsBody.affectedByGravity=NO;

node.physicsBody.dynamic = NO;
node.physicsBody.categoryBitMask = coinCategory;
node.physicsBody.collisionBitMask = 0;
node.physicsBody.contactTestBitMask = 0;

我附上了一张图片以使其更清楚..

enter image description here

最佳答案

TL;DR:collisionBitMask 默认设置为 0xFFFFFFFF(即,设置所有位 - 感谢 0x141E)。

这意味着 ObjA 将与每个设置了 physicsBody 的对象发生碰撞。

解决方案:将 ObjAcollisionBitMask 设置为不同于 0 的值。

collisionBitMask 定义:

@property (nonatomic, assign) uint32_t collisionBitMask;

关于ios - 在 Sprite Kit 中,如何使坠落物体在相交时不会受到其他物体的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27679683/

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