首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雪碧试剂盒检测碰撞

雪碧试剂盒检测碰撞
EN

Stack Overflow用户
提问于 2014-10-08 17:00:05
回答 1查看 79关注 0票数 0

很抱歉重新打开这个标题,但是关于这个问题的标题对我没有那么大的帮助。在我的游戏中,你是一艘宇宙飞船,你试图逃离即将到来的小行星。当你的飞船碰到小行星时,你就会爆炸。我的密码是这样的;

代码语言:javascript
复制
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‘方法。请帮帮我,谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-08 17:35:58

试着从

代码语言:javascript
复制
-(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”创建一个方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26262414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档