簡體   English   中英

在Box2d和libgdx(android)中檢測兩個物體之間的碰撞

[英]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實例,其中包含您所需的全部:

  • 夾具A-觸點的第一個夾具
  • FixtureB-FixtureA與之碰撞的燈具
  • WorldManifold-包含碰撞點等的對象

通過固定裝置,您可以訪問要繪制的實體和演員。 可以通過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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM