FXGL
FXGL copied to clipboard
Java / JavaFX / Kotlin Game Library (Engine)
In Images.kt file, `fun Image.map(overlay: Image, f: (Pixel, Pixel) -> Pixel): Image` combines `overlay` and `this` to produce a new `Image` using the function `f` to map pixels from the...
An example with some text explaining how scenes and sub-scenes work
In the fxgl-tools module, com.almasb.fxgl.tools.dialogues.ExpandableTextArea, we compute the height: ``` var newHeight = text.layoutBounds.height + 20.0 newHeight = if (abs(prevHeight - newHeight) > 15) newHeight else prevHeight ``` Ideally, this...
In addition to games (which extend `GameApplication`), FXGL can be used to develop editors. Example: [dialogue editor](https://fxgl.itch.io/fxgl-dialogue-editor). Editors typically share some functionality: * An infinite grid that can be traversed...
Some code to play with inside TilesetLoader: ``` // TODO: no support for stagger axis == "Y" fun loadViewHex(layerName: String): Node { log.debug("Loading view for layer $layerName") val layer =...
This includes generation of profile data, saving and loading. Also needs to consider allowing no-profile games - [ ] FXGLMenu, use profile name instead of "./" to save/load data. Perhaps...
- [ ] performance (Poor dev pane performance when game world has many entities) - [ ] DevService / DevPane need further redesign - [ ] allow devs to add...
There are a lot of assumptions that, if not met, will crash the call
DialogueGraph in `com.almasb.fxgl.cutscene.dialogue` ``` // TODO: source has to be ChoiceNode, otherwise it does not make sense fun addChoiceEdge(source: DialogueNode, optionID: Int, target: DialogueNode) { edges += DialogueChoiceEdge(source, optionID, target)...