該categoryBits和maskBits是primarly的Box2D的說哪個夾具碰撞與其他夾具。因此,當您的其中一個fixtures與fixture您不需要的全部或全部發生沖突時category- 或maskBits為它。如果燈具與您不需要的所有其他燈具發生碰撞category- 或maskBits.如果燈具不與任何其他燈具發生碰撞,您可以設置isSensor = true;而不是使用category- 和maskBits。如果您知道哪個對象與另一個對象發生了碰撞,您可以使用UserDataof fixtures。為您擁有的所有類型創建一個枚舉:public enum Type { NOTHING, GROUND, FRAN, FRAN_BODY_SENSOR, ENEMY_FRONT, BRICK, etc...}然后通過創建夾具,您可以將類型設置為 UserData:Fixture fixture = body.createFixture(fixtureDef);fixture.setUserData(Type.GROUND);//short:body.createFixture(fixtureDef).setUserData(Type.GROUND);最后,您ContactListener可以檢查夾具的 UserData 以找出哪個對象與哪個對象碰撞:if(fixA.getUserData() == Type.FRAN_HEAD && fixB.getUserData() == Type.BRICK){ //FRAN_HEAD and BRICK has collided}
1 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
random.nextInt(N)
會給你一個從 0 到 N-1 的隨機整數。如果你想要它從 5 到 15,那么它的范圍是 15-5+1,即 11。
您需要使用random.nextInt(11)
將范圍從 [0,11) 設置為 [0,10],然后添加 +5 以將其移至 [5,15]。
int count = random.nextInt(11) + 5;
添加回答
舉報
0/150
提交
取消