Physics 碰撞檢測回調方法出錯或者沒有效果解決方法

1.碰撞檢測回調方法編譯出錯;

auto *listener = EventListenerPhysicsContact::create();

listener->onContactBegin = CC_CALLBACK_1(HelloWorld::onContactBegin,this);


在3.0rc版本中回調函數的參數變爲一個,不能使用原來的兩個參數;

bool HelloWorld::onContactBegin(PhysicsContact& contact)

{

    auto spriteA = (Sprite*)contact.getShapeA()->getBody()->getNode();

    auto spriteB = (Sprite*)contact.getShapeB()->getBody()->getNode();

    return true;

}


2.回調方法不調用


添加如下代碼:

PhysicsBody * body = PhysicsBody::createCircle(_ball->getContentSize().width/2);

PhysicsBody * body2 = PhysicsBody::createCircle(_ball->getContentSize().width/2);

body->setMass(1.0f);

body->setContactTestBitmask(0xFFFFFFFF);

body2->setMass(1.0f);

body2->setContactTestBitmask(0xFFFFFFFF);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章