private static Filter newContactFilter(short categoryBits, short groupIndex, short maskBits) { Filter filter = new Filter(); filter.categoryBits = categoryBits; filter.groupIndex = groupIndex; filter.maskBits = maskBits; return filter; }
// Applies filter to ALL fixtures that have been added so far public void setFilter(short category, short mask) { for (Fixture f : scene.getFixtures()) { Filter filter = f.getFilterData(); filter.categoryBits = category; filter.maskBits = mask; f.setFilterData(filter); } }
public void setBits(short cat, short mask) { Filter filter = new Filter(); filter.categoryBits = cat; filter.maskBits = mask; for (Fixture f : body.getFixtureList()) { f.setFilterData(filter); } }
@Override protected void initBody(final World world, final Rectangle bounds) { super.initBody(world, bounds); // By default in character class, category = player and mask = ground Filter filter = body.getFixtureList().get(0).getFilterData(); filter.categoryBits = B2DVars.ENEMY_MASK; filter.maskBits = B2DVars.GROUND_MASK | B2DVars.PROJECTILE_MASK | B2DVars.PLAYER_MASK; body.getFixtureList().get(0).setFilterData(filter); }
/** Kill the enemy */ public void kill() { state = State.BUMP; stateTime = 0f; // Now don't collide with player or projectile anymore // He is dead, but we can't remove it now until animation is done Filter filter = body.getFixtureList().get(0).getFilterData(); filter.categoryBits = B2DVars.ENEMY_MASK; filter.maskBits = B2DVars.GROUND_MASK; body.getFixtureList().get(0).setFilterData(filter); }
public void restart() { // reset player Filter filter = body.getFixtureList().get(0).getFilterData(); filter.categoryBits = GM.PLAYER_CATEGORY_BITS; body.getFixtureList().get(0).setFilterData(filter); body.setLinearVelocity(0, 0); body.setTransform(10f, 2.5f, 0); body.setAngularVelocity(0); hp = maxHp; alive = true; }
public OtherBoss() { super("Qubo"); health = maxHealth = 50; size.getTarget().set(2, 2); fixture = rectCollision(2, 2); Filter filter = new Filter(); filter.categoryBits = 0x80; filter.maskBits = 0x7; fixture.setFilterData(filter); fixture.setDensity(9999); damageOnTouch = 1.5f; DomeHat wh = new DomeHat(this, new Vector2(0, 1.2f)); GameScreen.i.getEntities().add(wh); }
public void explode() { hp = 0; alive = false; Filter filter = body.getFixtureList().get(0).getFilterData(); filter.categoryBits = GM.NOTHING_CATEGORY_BITS; body.getFixtureList().get(0).setFilterData(filter); body.setGravityScale(0); body.setLinearVelocity(0, 0); Array<ParticleEffect> particleEffects = playScreen.getParticleEffectArray(); ActorBuilder.createExplodeEffect(x, y, particleEffects); if (leftThrottleSoundId >= 0) { throttleSound.pause(leftThrottleSoundId); } if (rightThrottleSoundId >= 0) { throttleSound.pause(rightThrottleSoundId); } explosionSound.play(GM.soundVolume, 1f, (x - 10f) / 20f); }
private Body createBody(float x, float y, float width, float height, boolean sensor) { BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyDef.BodyType.KinematicBody; bodyDef.position.set(new Vector2(x, y)); bodyDef.allowSleep = true; PolygonShape shape = new PolygonShape(); shape.setAsBox(width / 2, height / 2, new Vector2(0, 0), 0); Body _body = WorldUtils.world.createBody(bodyDef); Fixture fixture = _body.createFixture(shape, 1.0f); fixture.setFriction(0); fixture.setSensor(sensor); if (!sensor) { fixture.setUserData(Constants.POTION_FIXTURE); } else { fixture.setUserData(Constants.NOT_COLLIDER_FIXTURE); } Filter filter = new Filter(); filter.categoryBits = Constants.COLLISION_CREATURE; filter.maskBits = Constants.COLLISION_GROUND + Constants.COLLISION_CREATURE + Constants.COLLISION_FIELD; fixture.setFilterData(filter); _body.setUserData(this); return _body; }
public void setCategoryFilter(short filterBit) { Filter filter = new Filter(); filter.categoryBits = filterBit; fixture.setFilterData(filter); }