use of com.almasb.fxgl.physics.CollisionHandler in project FXGL by AlmasB.
the class MarioApp method initPhysics.
@Override
protected void initPhysics() {
getPhysicsWorld().addCollisionHandler(new CollisionHandler(MarioType.PLAYER, MarioType.COIN) {
@Override
protected void onCollisionBegin(Entity player, Entity coin) {
coin.getComponent(CollidableComponent.class).setValue(false);
Animation<?> anim = Entities.animationBuilder().duration(Duration.seconds(0.5)).interpolator(Interpolators.ELASTIC.EASE_IN()).scale(coin).from(new Point2D(1, 1)).to(new Point2D(0, 0)).buildAndPlay();
anim.setOnFinished(() -> coin.removeFromWorld());
}
});
getPhysicsWorld().addCollisionHandler(new CollisionHandler(MarioType.PLAYER, MarioType.DOOR) {
@Override
protected void onCollisionBegin(Entity player, Entity door) {
getDisplay().showMessageBox("Level Complete!", () -> {
System.out.println("Dialog closed!");
});
}
});
}
Aggregations