[英]Disable collision completely of a body in AndEngine Box2D
我正在開發《泡泡射擊》類型的游戲,在該游戲中,我希望屍體在破裂或掉落時不會與其他物體碰撞。 我不能使用碰撞過濾,因為場景中的所有物體都是同一類型。 我想禁用碰撞。 我不想讓一個物體與其他物體發生碰撞,有人告訴我將isSensor標志設置為true,但是我還是無法獲取並設置該標志。 請幫忙。
找到了答案:
for(int i=0; i<getBody().getFixtureList().size();i++){
this.getBody().getFixtureList().get(i).setSensor(true);
}
將傳感器設置為true不會對身體造成碰撞影響。 但是請記住,實際上確實發生了沖突,並且調用了聯系偵聽器。 但是由於物理原因不會發生碰撞效果,因此您需要檢查身體是否將isSesors設置為true,才能在接觸偵聽器中執行任何操作。
您還可以使用掩碼位和類別位屬性來更改某些實體的行為,而其他實體則充當普通對象。
這樣,您可以創建多組實體,這些實體以組的形式響應碰撞。 意味着一組具有與另一組不同的碰撞行為。
使用此方法可以執行沖突過濾。 在下面的示例中表示該東西。
如果您不希望它們發生沖突,請給燈具的filterindex賦予負值,而如果他們希望發生沖突,則給正值。
用於消除碰撞
public static final FixtureDef PLAYERS_FIXTURE_DEF = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f, false, CATEGORYBIT_PLAYERS, MASKBITS_WALL, (short)-1);
和碰撞
public static final FixtureDef PLAYERS_FIXTURE_DEF = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f, false, CATEGORYBIT_PLAYERS, MASKBITS_WALL, (short)1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.