0
#import "collisionTestMyScene.h"
const static int nodeBitMask = 0x1 << 0;
const static int node1BitMask = 0x1 << 1;;

@implementation collisionTestMyScene

-(id)initWithSize:(CGSize)size {    
    if (self = [super initWithSize:size]) {
        /* Setup your scene here */
        self.physicsWorld.contactDelegate = self;
        w = 0;


            }
    return self;
}
-(void) didBeginContact:(SKPhysicsContact *)contact {
    NSLog(@"Contact Begin");

    if (contact.bodyA.categoryBitMask == nodeBitMask) {
        NSLog(@"Node is Body A");
    }
    if (contact.bodyA.categoryBitMask == node1BitMask) {
        NSLog(@"Node is Body B");
    }
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    /* Called when a touch begins */

    for (UITouch *touch in touches) {
        CGPoint location = [touch locationInNode:self];
        node = [SKSpriteNode spriteNodeWithImageNamed:@"block.jpg"];
        node.position = location;
        [node setScale:0.07];
        node.physicsBody.contactTestBitMask = node1BitMask;
        node.physicsBody.categoryBitMask = nodeBitMask;
        node.physicsBody.collisionBitMask = nodeBitMask;
        //node.physicsBody.collisionBitMask = 0;
        node1 = [SKSpriteNode spriteNodeWithImageNamed:@"block2.jpg"];
        node1.position = CGPointMake(200, 200);
        node1.physicsBody.categoryBitMask = node1BitMask;
        node1.physicsBody.contactTestBitMask = nodeBitMask;
        node1.physicsBody.collisionBitMask = node1BitMask;
        //node1.physicsBody.collisionBitMask = 0;
        [node1 setScale:0.07];


        [self addChild:node];
        [self addChild:node1];
        node.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(node.size.width, node.size.height)];
        node1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(node1.size.width, node1.size.height)];
        SKAction *moveUp = [SKAction moveToX:100 duration:3];
        node1.physicsBody.affectedByGravity = NO;
        node.physicsBody.affectedByGravity = NO;
        [node1 runAction:moveUp];
        w = 1;

    }



}

決して NSLogging ではありません。ビットマスクなどを変更してみました。CGRectIntersects 関数は機能しますが、十分に正確ではありません。また、2 つのノードは完全なボックス形状になっています。私は何が間違っているのでしょうか?前もって感謝します!

4

1 に答える 1