#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 함수는 작동하지만 충분하지 않습니다. 또한 두 노드는 완벽한 상자 모양입니다. 나는 무엇을 잘못 할 수 있 었는가? 미리 감사드립니다.- (void) didBeginContact가 호출되지 않습니다. 생각?
initWithSize가 호출 되었습니까? 해당 메서드에 중단 점을 넣고 대리자가 설정되었는지 확인하십시오. – DrKey
예, 방금 확인했습니다. 전화 번호는 – user3249418
입니다. 어디에서 전화를 걸거나 didBeginContact를 호출합니까? 콘센트 연결이 누락 되었습니까? – BriOnH