该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
提交
取消