Search in sources :

Example 1 with CollisionHandler

use of com.almasb.fxgl.physics.CollisionHandler in project FXGL by AlmasB.

the class ScifiSample method initPhysics.

@Override
protected void initPhysics() {
    getPhysicsWorld().addCollisionHandler(new CollisionHandler(ScifiType.PLAYER, ScifiType.PLATFORM) {

        @Override
        protected void onHitBoxTrigger(Entity a, Entity b, HitBox boxA, HitBox boxB) {
            if (boxA.getName().equals("lower")) {
                playerControl.canJump = true;
            }
        }
    });
    getPhysicsWorld().addCollisionHandler(new CollisionHandler(ScifiType.PLAYER, ScifiType.PORTAL) {

        @Override
        protected void onCollisionBegin(Entity a, Entity b) {
            nextLevel();
        }
    });
    getPhysicsWorld().addCollisionHandler(new CollectibleHandler(ScifiType.PLAYER, ScifiType.COIN, "drop.wav", (c) -> set("coins", geti("coins") + 1)));
}
Also used : CollectibleHandler(com.almasb.fxgl.physics.handler.CollectibleHandler) LevelText(com.almasb.fxgl.ui.LevelText) Animation(com.almasb.fxgl.animation.Animation) Arrays(java.util.Arrays) DSLKt.geti(com.almasb.fxgl.app.DSLKt.geti) GameSettings(com.almasb.fxgl.settings.GameSettings) ParallaxBackgroundView(com.almasb.fxgl.entity.view.ParallaxBackgroundView) RenderLayer(com.almasb.fxgl.entity.RenderLayer) InGamePanel(com.almasb.fxgl.ui.InGamePanel) Map(java.util.Map) CollectibleHandler(com.almasb.fxgl.physics.handler.CollectibleHandler) CollisionHandler(com.almasb.fxgl.physics.CollisionHandler) EnumSet(java.util.EnumSet) DSLKt.set(com.almasb.fxgl.app.DSLKt.set) Orientation(javafx.geometry.Orientation) KeyCode(javafx.scene.input.KeyCode) Color(javafx.scene.paint.Color) ParticleEmitter(com.almasb.fxgl.effect.ParticleEmitter) ParticleType(com.almasb.fxgl.physics.box2d.particle.ParticleType) ParticleEmitters(com.almasb.fxgl.effect.ParticleEmitters) QTE(com.almasb.fxgl.gameplay.qte.QTE) AnimatedTexture(com.almasb.fxgl.texture.AnimatedTexture) ParticleControl(com.almasb.fxgl.effect.ParticleControl) UserAction(com.almasb.fxgl.input.UserAction) ParticleGroupDef(com.almasb.fxgl.physics.box2d.particle.ParticleGroupDef) Text(javafx.scene.text.Text) ParallaxTexture(com.almasb.fxgl.entity.view.ParallaxTexture) BoundingShape(com.almasb.fxgl.physics.BoundingShape) Duration(javafx.util.Duration) PositionComponent(com.almasb.fxgl.entity.component.PositionComponent) Entities(com.almasb.fxgl.entity.Entities) PhysicsParticleComponent(com.almasb.fxgl.physics.PhysicsParticleComponent) HitBox(com.almasb.fxgl.physics.HitBox) GameApplication(com.almasb.fxgl.app.GameApplication) Entity(com.almasb.fxgl.entity.Entity) Entity(com.almasb.fxgl.entity.Entity) HitBox(com.almasb.fxgl.physics.HitBox) CollisionHandler(com.almasb.fxgl.physics.CollisionHandler)

Example 2 with CollisionHandler

use of com.almasb.fxgl.physics.CollisionHandler in project FXGL by AlmasB.

the class PhysicsSample method initPhysics.

@Override
protected void initPhysics() {
    // 3. get physics world and register a collision handler
    // between Type.PLAYER and Type.ENEMY
    PhysicsWorld physics = getPhysicsWorld();
    physics.addCollisionHandler(new CollisionHandler(Type.PLAYER, Type.ENEMY) {

        @Override
        protected void onHitBoxTrigger(Entity player, Entity enemy, HitBox playerBox, HitBox enemyBox) {
            System.out.println(playerBox.getName() + " X " + enemyBox.getName());
        }

        // the order of entities is determined by
        // the order of their types passed into constructor
        @Override
        protected void onCollisionBegin(Entity player, Entity enemy) {
            System.out.println("On Collision Begin");
        }

        @Override
        protected void onCollision(Entity player, Entity enemy) {
            System.out.println("On Collision");
        }

        @Override
        protected void onCollisionEnd(Entity player, Entity enemy) {
            System.out.println("On Collision End");
        }
    });
}
Also used : Entity(com.almasb.fxgl.entity.Entity) HitBox(com.almasb.fxgl.physics.HitBox) CollisionHandler(com.almasb.fxgl.physics.CollisionHandler) PhysicsWorld(com.almasb.fxgl.physics.PhysicsWorld)

Example 3 with CollisionHandler

use of com.almasb.fxgl.physics.CollisionHandler in project FXGL by AlmasB.

the class ScriptSample method initPhysics.

@Override
protected void initPhysics() {
    getPhysicsWorld().addCollisionHandler(new CollisionHandler(EntityType.PC, EntityType.NPC) {

        @Override
        protected void onCollisionBegin(Entity pc, Entity npc) {
            getGameplay().getCutsceneManager().startCutscene("cutscene.js");
        }
    });
    getPhysicsWorld().addCollisionHandler(new CollisionHandler(EntityType.PC, EntityType.COIN) {

        @Override
        protected void onCollisionBegin(Entity pc, Entity coin) {
            getGameState().increment("coins", +1);
            coin.removeFromWorld();
        }
    });
}
Also used : Entity(com.almasb.fxgl.entity.Entity) CollisionHandler(com.almasb.fxgl.physics.CollisionHandler)

Example 4 with CollisionHandler

use of com.almasb.fxgl.physics.CollisionHandler in project FXGL by AlmasB.

the class MarioApp method initPhysics.

@Override
protected void initPhysics() {
    getPhysicsWorld().setGravity(0, 500 * 2.5);
    getPhysicsWorld().addCollisionHandler(new CollisionHandler(MarioType.PLAYER, MarioType.GHOST_PLATFORM) {

        @Override
        protected void onCollisionBegin(Entity a, Entity platform) {
            platform.getView().setVisible(true);
        }

        @Override
        protected void onCollisionEnd(Entity a, Entity platform) {
            platform.getView().setVisible(false);
        }
    });
    getPhysicsWorld().addCollisionHandler(new CollisionHandler(MarioType.PLAYER, MarioType.PORTAL) {

        @Override
        protected void onCollisionBegin(Entity a, Entity b) {
            nextLevel = true;
        }
    });
    getPhysicsWorld().addCollisionHandler(new CollectibleHandler(MarioType.PLAYER, MarioType.COIN, "drop.wav"));
}
Also used : CollectibleHandler(com.almasb.fxgl.physics.handler.CollectibleHandler) Entity(com.almasb.fxgl.entity.Entity) CollisionHandler(com.almasb.fxgl.physics.CollisionHandler)

Example 5 with CollisionHandler

use of com.almasb.fxgl.physics.CollisionHandler in project FXGL by AlmasB.

the class PhysicsSample2 method initPhysics.

@Override
protected void initPhysics() {
    // 3. get physics world and register a collision handler
    // between Type.PLAYER and Type.ENEMY
    PhysicsWorld physics = getPhysicsWorld();
    physics.addCollisionHandler(new CollisionHandler(Type.PLAYER, Type.ENEMY) {

        @Override
        protected void onCollision(Entity player, Entity enemy) {
            isColliding = true;
        }
    });
}
Also used : Entity(com.almasb.fxgl.entity.Entity) CollisionHandler(com.almasb.fxgl.physics.CollisionHandler) PhysicsWorld(com.almasb.fxgl.physics.PhysicsWorld)

Aggregations

Entity (com.almasb.fxgl.entity.Entity)6 CollisionHandler (com.almasb.fxgl.physics.CollisionHandler)6 Animation (com.almasb.fxgl.animation.Animation)2 HitBox (com.almasb.fxgl.physics.HitBox)2 PhysicsWorld (com.almasb.fxgl.physics.PhysicsWorld)2 CollectibleHandler (com.almasb.fxgl.physics.handler.CollectibleHandler)2 DSLKt.geti (com.almasb.fxgl.app.DSLKt.geti)1 DSLKt.set (com.almasb.fxgl.app.DSLKt.set)1 GameApplication (com.almasb.fxgl.app.GameApplication)1 ParticleControl (com.almasb.fxgl.effect.ParticleControl)1 ParticleEmitter (com.almasb.fxgl.effect.ParticleEmitter)1 ParticleEmitters (com.almasb.fxgl.effect.ParticleEmitters)1 Entities (com.almasb.fxgl.entity.Entities)1 RenderLayer (com.almasb.fxgl.entity.RenderLayer)1 PositionComponent (com.almasb.fxgl.entity.component.PositionComponent)1 ParallaxBackgroundView (com.almasb.fxgl.entity.view.ParallaxBackgroundView)1 ParallaxTexture (com.almasb.fxgl.entity.view.ParallaxTexture)1 QTE (com.almasb.fxgl.gameplay.qte.QTE)1 UserAction (com.almasb.fxgl.input.UserAction)1 BoundingShape (com.almasb.fxgl.physics.BoundingShape)1