很抱歉重新打开这个标题,但是关于这个问题的标题对我没有那么大的帮助。在我的游戏中,你是一艘宇宙飞船,你试图逃离即将到来的小行星。当你的飞船碰到小行星时,你就会爆炸。我的密码是这样的;
static const uint32_t asteroidCategory = 1;
static const uint32_t playerCategory = 2;
static const uint32_t laserCategory = 3;
player.physicsBody.categoryBitMask = playerCategory;
player.physicsBody.contactTestBitMask = asteroidCategory;
player.physicsBody.collisionBitMask = 0;
asteroid.physicsBody.categoryBitMask=asteroidCategory;
asteroid.physicsBody.contactTestBitMask=playerCategory;
asteroid.physicsBody.collisionBitMask=0;但我不知道我该怎么做'didBeginContact‘方法。请帮帮我,谢谢..。
发布于 2014-10-08 17:35:58
试着从
-(void)didBeginContact:(SKPhysicsContact *)contact
{
SKPhysicsBody *firstBody, *secondBody;
if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask)
{
firstBody = contact.bodyA;
secondBody = contact.bodyB;
}
else
{
firstBody = contact.bodyB;
secondBody = contact.bodyA;
}
if ((firstBody.categoryBitMask & playerCategory) != 0 &&
(secondBody.categoryBitMask & astroidCategory) != 0)
{
[self player:(SKSpriteNode *) firstBody.node didCollideWithAstroid:(SKSpriteNode *) secondBody.node];
}您还需要为“didCollideWithAstroid”创建一个方法
https://stackoverflow.com/questions/26262414
复制相似问题