use of com.almasb.fxgl.core.serialization.Bundle in project FXGL by AlmasB.
the class BoundingBoxComponentTest method testSerialization.
@Test
public void testSerialization() {
bbox.addHitBox(new HitBox("BOX", BoundingShape.box(30, 40)));
// write
Bundle bundle = new Bundle("BBOXTest");
bbox.write(bundle);
Entity e2 = new Entity();
// read
BoundingBoxComponent bbox2 = e2.getBoundingBoxComponent();
bbox2.read(bundle);
assertThat(bbox2.getWidth(), is(30.0));
assertThat(bbox2.getHeight(), is(40.0));
List<HitBox> boxes = bbox2.hitBoxesProperty();
assertThat(boxes.size(), is(1));
assertThat(boxes.get(0).getName(), is("BOX"));
assertThat(boxes.get(0).getWidth(), is(30.0));
assertThat(boxes.get(0).getHeight(), is(40.0));
}
use of com.almasb.fxgl.core.serialization.Bundle 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();
}
use of com.almasb.fxgl.core.serialization.Bundle in project FXGL by AlmasB.
the class UDPSample method main.
public static void main(String[] args) throws Exception {
Logger.configure(new LoggerConfig());
Logger.addOutput(new ConsoleOutput(), LoggerLevel.DEBUG);
var server = new NetService().newUDPServer(55555);
server.setOnConnected(connection -> {
connection.addMessageHandler((conn, message) -> {
System.out.println("Server got: " + message);
if (message.getName().equals("Bye!!!")) {
System.out.println("Stopping now");
server.stop();
}
});
});
var client = new NetService().newUDPClient("localhost", 55555);
client.setOnConnected(connection -> {
connection.addMessageHandler((conn, message) -> {
System.out.println("Client got: " + message);
conn.send(new Bundle("Bye!!!"));
client.disconnect();
});
});
new Thread(() -> {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Client connecting");
client.connectTask().run();
}).start();
new Thread(() -> {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Broadcasting hello");
server.broadcast(new Bundle("HELLO!"));
}).start();
server.startTask().run();
}
use of com.almasb.fxgl.core.serialization.Bundle in project FXGL by AlmasB.
the class CircleNNApp method onCircleDied.
public void onCircleDied() {
getGameScene().getViewport().shakeTranslational(5);
place--;
textPlace.setText(place + "");
animationBuilder().interpolator(Interpolators.EXPONENTIAL.EASE_OUT()).duration(Duration.seconds(0.11)).autoReverse(true).repeat(2).scale(textPlace).from(new Point2D(1, 1)).to(new Point2D(3, 3)).buildAndPlay();
if (place == 1) {
getInput().stopCapture();
var bundle = new Bundle("input");
capture.write(bundle);
getFileSystemService().writeDataTask(bundle, "editor_json/input/input0.dat").run();
showMessage("You Win!", () -> getGameController().startNewGame());
}
}
Aggregations