我在场景中添加了一个类实例的负载,并检测了它们与另一个对象之间的冲突。
全部设置并工作
if ((firstBody.categoryBitMask & ballCategory) != 0 && (secondBody.categoryBitMask & objectCategory) != 0) {
NSLog(@"Hit");
}
每当发生碰撞时,都要获取“命中”日志。
现在如何在这些对象之一上执行实例方法?
仅供参考,这是我添加的对象之一。
Ball *ball = [[Ball alloc]init];
ball.position = CGPointMake(spawnPoint.x + arc4random() % 5, spawnPoint.y);
ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:5];
ball.physicsBody.dynamic = YES;
ball.physicsBody.mass = 10;
ball.name = @"ball";
ball.physicsBody.categoryBitMask = ballCategory;
ball.physicsBody.contactTestBitMask = targetCategory | ballCategory;
ball.physicsBody.collisionBitMask = targetCategory | ballCategory | objectCategory;
[self addChild:ball];
很简单:
if ((firstBody.categoryBitMask & ballCategory) != 0 &&
(secondBody.categoryBitMask & objectCategory) != 0) {
NSLog(@"Hit");
Ball *ball = (Ball*)firstBody.node;
[ball someMethod];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句