2015-11-01 198 views
1

我想用C++在Cocos2d-x中製作視頻遊戲,但是我遇到了PhysicContact問題。Cocos2d-x PhysicsContact對象參考

在我的遊戲場景中,我有一個聯繫偵聽器,用於檢查與類項目的角色和對象PhysicBody的碰撞。它一切正常,但現在我想識別什麼對象發生了碰撞,因爲我想調用一個名爲getThrow()的對象類的方法。

class Item : public cocos2d::Layer 
 
{ 
 
public: 
 
\t Sprite* itemArt; 
 
\t int itemType; 
 
\t PhysicsBody* itemCollider; 
 

 
\t void createArt(int type); 
 
\t void getThrow(); 
 

 
\t Item(int type); 
 
};

我已經與PhysicContact信息試了一下,首先我獲取對象PhysicBody,然後它的節點,但這個我剛剛獲得對象的雪碧,並在這一點上我不知道如何達到要調用他的方法的對象。

bool Level0::onContactBegin(PhysicsContact &contact) 
 
{ 
 
\t auto bodyA = contact.getShapeA()->getBody()->getNode(); 
 
\t auto bodyB = contact.getShapeB()->getBody()->getNode(); 
 

 
    //HERE IS WHERE I WANT TO RUN bodyB->getThrow() 
 

 
\t return true; 
 
}

我也有getUserData()和getUserObject(嘗試),但我不知道該怎麼稱呼與對象指針的方法。

我不知道我是否嘗試了錯誤的東西,但我會感謝您的答案。

在此先感謝! (如果只是告訴我需要更多的細節,我是新在這個大社區)

回答

-2

你需要這樣做:

((Item*) b->getNode())->getThrow();