簡體   English   中英

完全禁用AndEngine Box2D中的物體碰撞

[英]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.

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