Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/john32b/djFlixel
Various helpers and tools library for haxeflixel
https://github.com/john32b/djFlixel
gamedev haxe haxeflixel library menus
Last synced: 3 months ago
JSON representation
Various helpers and tools library for haxeflixel
- Host: GitHub
- URL: https://github.com/john32b/djFlixel
- Owner: john32b
- License: mit
- Created: 2016-01-17T17:39:15.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-17T03:04:51.000Z (7 months ago)
- Last Synced: 2024-05-02T07:47:48.593Z (6 months ago)
- Topics: gamedev, haxe, haxeflixel, library, menus
- Language: Haxe
- Homepage: https://john0032.itch.io/djflixel
- Size: 6.3 MB
- Stars: 89
- Watchers: 10
- Forks: 17
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: license.txt
Awesome Lists containing this project
- awesome-haxeflixel - djFlixel - Various tools and helpers for HaxeFlixel (Libraries / Video Tutorials)
README
> :star: **NEW UPDATE** (2024-01) `V0.5.9` | [Announcements Page](https://github.com/john32b/djFlixel/discussions/categories/announcements)
# 🔦 What is it
**djFlixel** is a small library with some helpful tools for [HaxeFlixel](https://github.com/HaxeFlixel/flixel). It started as a helper for my personal projects. One of the first things that I implemented was a **menu system** and a **text autoscroller**. Then I kept adding things, like a tool to fade the screen to black, or a unified keyboard/gamepad checker. Later on I decided to open source and distribute it, why not.
The codebase is commented, and I hope that you may find it easy to use. Plus I made a **demo showcase app** that utilizes most of the parts of **djFlixel**; you can find the demo source files in the `/demo` folder.
**Checkout the HTML5 version of the DEMO here: https://john0032.itch.io/djflixel** :point_left: :point_left:
### Install
```sh
haxelib git djFlixel https://github.com/john32b/djFlixel
```# 🧰 Main Features
## FlxMenu
![flxmenu_demo](_readme/flxmenu.gif)
A multi-page menu system. Best used for creating short game menus. It is simple to setup and use. Supports **links**, **checkboxes**, **list selection**, **number selection**. It offers a simple callback system to get events *(like when an item was changed or focused)*. Also the visual style is customizable from the colors, fonts, animation times, tween offsets to custom cursors, etc. *(Examples in the Demo project source code)*
## FlxAutotext
An autotype text object that supports a simple inline **tagging** system. Meaning that you can insert special tags in the source string that change the behavior on the fly, like adding pauses, triggering user callbacks or changing the character speed.
## FX Package
In the folder/package `djflixel/gfx` you can find some tools for creating various effects like static, rainbow loader, starfield, text sine scroller, text bouncer etc. All of the effects offer many customization options. Checkout the **DEMO**, it provides examples on how to use most of these.
| ![fx_stripes](_readme/fx_stripes.gif) | ![fx_textScroller](_readme/fx_textScroller.gif) | ![fx_stars](_readme/fx_stars.gif) |
| ------------------------------------- | ----------------------------------------------- | ------------------------------------------------- |
| ![fx_demo](_readme/fx_demo.gif) | ![fx_rainbow](_readme/fx_rainbow.gif) | ![fx_scroller](_readme/fx_scroller.gif) |
| ![fx_noise](_readme/fx_noise.gif) | ![fx_filterFade](_readme/fx_filterFade.gif) | ![fx_bounceLetters](_readme/fx_bounceLetters.gif) |Some of the effects
## Global djFlixel Helper Object `D`
**djFlixel** offers the public static class `D.hx` for accessing some minor objects and helpers. It is available in the package `djFlixel.D`
**What is included in `D`** :
- `D.ctrl` : Streamlined control polling. Check once and get gamepad/keyboard presses. Also able to change to change keyboard keymap on the fly
- `D.snd` : Offers some sound functions, like playing assets with only the short filename or setting predefined volumes for sounds
- `D.bmu` : General purpose **openFL** BitmapData Manipulation tools.
- `D.gfx`: **flixel/djFlixel** specific Bitmap Manipulation tools.
- `D.text` : Offers quick generation of `FlxText` objects with custom styles. Provides its own text styling struct. The entirety of **djFlixel** relies on this object to get and style text objects.
- `D.align` : Tools to align `FlxSprites`. Align in relation to the screen or to each other or in columns, etc
- `D.ui` : UI related helpers. Like an icon generator (built-in **djFlixel** icons)
- `D.save` : Save functions helper.
- `D.dest` : Helper object offering extra destroying functions, like tweens, or timers (*Use it like FlxDestroyUtil*)## ⛓️ Other
There are other small tools in this libary. Like in the `djflixel/gfx/pal` package you will find some Color Palettes, like DB32. Or a class `DelayCall` which makes it easy to delay a function call. Feel free to explore the codebase and as always read the `demo/` source, which utilizes most of these.
### Icons
**djFlixel** has some built-in general use icons. Icons come in sized of `8,12,16,24` pixels wide and tall. Icons are accessible from the `D.ui` object. **Also**, as with any other white bitmap, you can use the bitmap tools in `D.bmu` to colorize these or apply shadows.
![icons_demo](_readme/icons_demo.png)
### Slice9 Tile mode Scaling
In the tool `D.bmu` you can find a useful **slice9** scaler, that works by tile-repeating the inner parts, It generates `bitmapdata` objects so you can use it however you want.
![slice9](_readme/slice9.png)
# 📄 Notes
### Games with Source Code
:sunflower: **NEW**, Checkout the Source Code of **FUTURE KNIGHT DX**, a game that uses djFlixel for the Menu System among other things
https://github.com/john32b/futureknightdx### Project status and future
Please note that this is just a side project of mine, I cannot guarantee any support or bugfixes. **This library is provided "as-is"**### Is there any documentation?
Yes, but only inside the the source code. :see_no_evil: . For practical examples checkout the `demo/` directory, it is an application that puts many of the components in use; it is heavily commented and I hope it explains things well. Also the library files themselves are commented. So feel free to dive into the codebase. :badger:> **I have no plans to make a wiki or any other form documentation for this library.**
# :dna: Changelog
- All updates and changelogs are in the [Announcements](https://github.com/john32b/djFlixel/discussions/categories/announcements) page here on github.
- Old changelogs deleted, starting fresh. 🙊# 📮 Closing
### Notes on some library source files
- In the source files you will find two extra folders/namespaces `djA` *(Target agnostic library)* and `djfl` *(Openfl library)*. Don't worry about those, they are partial personal libraries that are not published but djFlixel uses. So I am bundling the files needed to compile.### Issues?
- It seems to be that some fonts don't work well in **HTML5**, they appear to produce taller text objects than the other targets, and this throws off all the automatic positioning a bit. `FlxMenu` and `FlxAutotext` are affected. However I tried to implement a **hack/fix** for such cases. Readup on `MPageStyle` and `DTextStyle`, plus check the `demo/` sources for an application example.### About
I started creating this library in 2015-2016, recently I reseted the commit history to a fresh start. The older versions prior to 0.4 are available in the TAG releases here on GitHub.Thanks for checking this out 😸,
John.---
**djFlixel** | **Author** : john32b | **License** : MIT