[英]Detect collision between two bodies in Box2d and libgdx(android)
我是libgdx和Box2d引擎的新手,我正在使用同一個引擎開發游戲。我想檢測兩個物體之間的碰撞以執行某些功能。但是我不知道執行此操作的最佳方法,也想了解一點沖突。請提供一些建議。我已經實現了ContactListener,但無濟於事。
我正在使用此代碼作為參考。
謝謝
您已經以正確的方式創建和設置了一個ContactListener ...(對於常規設置,libgdx Wiki很棒: https : //github.com/libgdx/libgdx/wiki/box2d#contact-listeners )
如果現在要處理特定的聯系人,例如,您需要在beginContact();
添加一些實現beginContact();
聽眾的方法。 beginContact();
方法包含一個Contact
實例,其中包含您所需的全部:
通過固定裝置,您可以訪問要繪制的實體和演員。 可以通過body.setUserData(actor);
與Actor建立連接body.setUserData(actor);
方法。
現在,您需要決定如何找出正確的碰撞。 您可以使用傳感器,它們是僅作為傳感器的box2d固定裝置。 這意味着,當一個物體與傳感器碰撞時,它不會反彈,而會掉落。 但是您便可以在偵聽器中檢測到此聯系。
同樣,向您的角色添加某種GameObjectType可能是一個好主意。 假設您創建了一個跳躍游戲,玩家在有水的情況下從一個平台跳到另一個平台。 然后,您可以通過box2d實體的getUserData()方法創建具有諸如PLAYER,WATER,PLATFORM等類型的actor,現在yu可以訪問Actor並比較其類型。
例如,當PLAYER類型的演員與WATER類型之一碰撞時,他會溺水而死...
希望能幫助到你...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.