Search in sources :

Example 1 with InputCapture

use of com.almasb.fxgl.input.InputCapture in project FXGL by AlmasB.

the class CircleNNApp method initGame.

@Override
protected void initGame() {
    getGameWorld().addEntityFactory(new CircleNNFactory());
    getGameScene().setBackgroundColor(Color.BLACK);
    spawn("block", 200, 200);
    spawn("block", getAppWidth() - 200 - 64, 200);
    spawn("block", 200, getAppHeight() - 200 - 64);
    spawn("block", getAppWidth() - 200 - 64, getAppHeight() - 200 - 64);
    var spawnPoints = List.of(new Point2D(100, 100), new Point2D(getAppWidth() - 100 - 64, 100), new Point2D(getAppWidth() / 2.0 - 32, 100), new Point2D(100, getAppHeight() / 2.0 - 32), new Point2D(getAppWidth() - 100 - 64, getAppHeight() / 2.0 - 32), new Point2D(getAppWidth() / 2.0 - 32, getAppHeight() / 2.0 - 32), new Point2D(100, getAppHeight() - 100 - 64), new Point2D(getAppWidth() - 100 - 64, getAppHeight() - 100 - 64), new Point2D(getAppWidth() / 2.0 - 32, getAppHeight() - 100 - 64));
    spawn("circle", 500.0, 600.0);
    spawn("circle", 500.0, 600.0);
    // spawnPoints.forEach(point -> {
    // for (int i = 0; i < 11; i++) {
    // spawn("circle", point);
    // }
    // });
    player = getGameWorld().getRandom(CIRCLE).get();
    player.removeComponent(RandomMoveComponent.class);
    player.removeComponent(BlockCollisionComponent.class);
    player.addComponent(new KeepOnScreenComponent());
    player.addComponent(new PlayerComponent());
    getGameWorld().getEntitiesByType(CIRCLE).stream().filter(e -> e != player).forEach(e -> {
        e.getComponent(RandomMoveComponent.class).pause();
        e.getComponent(BlockCollisionComponent.class).pause();
        Bundle bundle = getFileSystemService().<Bundle>readDataTask("editor_json/input/input0.dat").run();
        var input = new InputCapture();
        input.read(bundle);
        e.getComponent(CircleComponent.class).getInput().applyCapture(input);
    });
    place = getGameWorld().getEntitiesByType(CIRCLE).size();
    run(() -> {
        var powerupType = PowerupType.SHIELD;
        // var powerupType = FXGLMath.random(PowerupType.values()).get();
        spawn("powerup", new SpawnData(FXGLMath.randomPoint(new Rectangle2D(0, 0, getAppWidth(), getAppHeight()))).put("powerupType", powerupType));
    }, Duration.seconds(3));
    capture = getInput().startCapture();
}
Also used : KeyCode(javafx.scene.input.KeyCode) Color(javafx.scene.paint.Color) Rectangle2D(javafx.geometry.Rectangle2D) MouseButton(javafx.scene.input.MouseButton) Bundle(com.almasb.fxgl.core.serialization.Bundle) RandomMoveComponent(com.almasb.fxgl.dsl.components.RandomMoveComponent) KeepOnScreenComponent(com.almasb.fxgl.dsl.components.KeepOnScreenComponent) FXGLMath(com.almasb.fxgl.core.math.FXGLMath) InputCapture(com.almasb.fxgl.input.InputCapture) CircleNNType(sandbox.circlegame.CircleNNType) Text(javafx.scene.text.Text) Duration(javafx.util.Duration) List(java.util.List) Interpolators(com.almasb.fxgl.animation.Interpolators) GameSettings(com.almasb.fxgl.app.GameSettings) Point2D(javafx.geometry.Point2D) SpawnData(com.almasb.fxgl.entity.SpawnData) GameApplication(com.almasb.fxgl.app.GameApplication) Entity(com.almasb.fxgl.entity.Entity) FXGL(com.almasb.fxgl.dsl.FXGL) RandomMoveComponent(com.almasb.fxgl.dsl.components.RandomMoveComponent) KeepOnScreenComponent(com.almasb.fxgl.dsl.components.KeepOnScreenComponent) Point2D(javafx.geometry.Point2D) Bundle(com.almasb.fxgl.core.serialization.Bundle) Rectangle2D(javafx.geometry.Rectangle2D) InputCapture(com.almasb.fxgl.input.InputCapture) SpawnData(com.almasb.fxgl.entity.SpawnData)

Aggregations

Interpolators (com.almasb.fxgl.animation.Interpolators)1 GameApplication (com.almasb.fxgl.app.GameApplication)1 GameSettings (com.almasb.fxgl.app.GameSettings)1 FXGLMath (com.almasb.fxgl.core.math.FXGLMath)1 Bundle (com.almasb.fxgl.core.serialization.Bundle)1 FXGL (com.almasb.fxgl.dsl.FXGL)1 KeepOnScreenComponent (com.almasb.fxgl.dsl.components.KeepOnScreenComponent)1 RandomMoveComponent (com.almasb.fxgl.dsl.components.RandomMoveComponent)1 Entity (com.almasb.fxgl.entity.Entity)1 SpawnData (com.almasb.fxgl.entity.SpawnData)1 InputCapture (com.almasb.fxgl.input.InputCapture)1 List (java.util.List)1 Point2D (javafx.geometry.Point2D)1 Rectangle2D (javafx.geometry.Rectangle2D)1 KeyCode (javafx.scene.input.KeyCode)1 MouseButton (javafx.scene.input.MouseButton)1 Color (javafx.scene.paint.Color)1 Text (javafx.scene.text.Text)1 Duration (javafx.util.Duration)1 CircleNNType (sandbox.circlegame.CircleNNType)1