{"id":23455163,"url":"https://github.com/john32b/djflixel","last_synced_at":"2025-04-11T03:47:20.868Z","repository":{"id":56538882,"uuid":"49828024","full_name":"john32b/djFlixel","owner":"john32b","description":"Various helpers and tools library for haxeflixel","archived":false,"fork":false,"pushed_at":"2024-04-17T03:04:51.000Z","size":6602,"stargazers_count":95,"open_issues_count":1,"forks_count":15,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-11T03:47:16.017Z","etag":null,"topics":["gamedev","haxe","haxeflixel","library","menus"],"latest_commit_sha":null,"homepage":"https://john0032.itch.io/djflixel","language":"Haxe","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/john32b.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-17T17:39:15.000Z","updated_at":"2025-03-06T07:24:32.000Z","dependencies_parsed_at":"2024-02-04T14:27:21.275Z","dependency_job_id":"270ed653-62d1-4cf8-8ade-d5ba037ce3ed","html_url":"https://github.com/john32b/djFlixel","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2FdjFlixel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2FdjFlixel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2FdjFlixel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john32b%2FdjFlixel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/john32b","download_url":"https://codeload.github.com/john32b/djFlixel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248339287,"owners_count":21087213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gamedev","haxe","haxeflixel","library","menus"],"created_at":"2024-12-24T03:29:13.479Z","updated_at":"2025-04-11T03:47:20.850Z","avatar_url":"https://github.com/john32b.png","language":"Haxe","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003e :star: **NEW UPDATE** (2024-01) `V0.5.9` | [Announcements Page](https://github.com/john32b/djFlixel/discussions/categories/announcements)\n\n# 🔦 What is it\n\n**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. \n\n\u003cimg src=\"_readme/logo_02.gif\" style=\"display:block;margin:1em auto;\"/\u003e\n\nThe 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.\n\n**Checkout the HTML5 version of the DEMO here: https://john0032.itch.io/djflixel** :point_left: :point_left:\n\n### Install\n\n```sh\nhaxelib git djFlixel https://github.com/john32b/djFlixel\n```\n\n\u003c!------------------------------------\u003e\n\n# 🧰 Main Features\n\n## FlxMenu\n\n![flxmenu_demo](_readme/flxmenu.gif)  \n\nA 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)*\n\n\n## FlxAutotext\n\n\u003cimg src=\"_readme/flxautotext.gif\" alt=\"flxautotext_demo\" style=\"zoom:150%;\" /\u003e  \n\nAn 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.\n\n\n## FX Package\n\nIn 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.\n\n| ![fx_stripes](_readme/fx_stripes.gif) | ![fx_textScroller](_readme/fx_textScroller.gif) | ![fx_stars](_readme/fx_stars.gif)                 |\n| ------------------------------------- | ----------------------------------------------- | ------------------------------------------------- |\n| ![fx_demo](_readme/fx_demo.gif)       | ![fx_rainbow](_readme/fx_rainbow.gif)           | ![fx_scroller](_readme/fx_scroller.gif)           |\n| ![fx_noise](_readme/fx_noise.gif)     | ![fx_filterFade](_readme/fx_filterFade.gif)     | ![fx_bounceLetters](_readme/fx_bounceLetters.gif) |\n\n  \u003csup\u003eSome of the effects\u003c/sup\u003e\n\n\n## Global djFlixel Helper Object `D`\n\n**djFlixel** offers the public static class `D.hx` for accessing some minor objects and helpers. It is available in the package `djFlixel.D`  \n\n**What is included in `D`** :\n\n- `D.ctrl` : Streamlined control polling. Check once and get gamepad/keyboard presses. Also able to change to change keyboard keymap on the fly\n- `D.snd` : Offers some sound functions, like playing assets with only the short filename or setting predefined volumes for sounds\n- `D.bmu` : General purpose **openFL** BitmapData Manipulation tools.\n- `D.gfx`: **flixel/djFlixel** specific Bitmap Manipulation tools.\n- `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.\n- `D.align` : Tools to align `FlxSprites`. Align in relation to the screen or to each other or in columns, etc\n- `D.ui` : UI related helpers. Like an icon generator (built-in **djFlixel** icons)\n- `D.save` : Save functions helper.\n- `D.dest` : Helper object offering extra destroying functions, like tweens, or timers (*Use it like FlxDestroyUtil*)\n\n\n## ⛓️ Other\n\nThere 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.\n\n### Icons\n\n**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.\n\n![icons_demo](_readme/icons_demo.png)  \n\n\u003c!-- \n```haxe\n// Sprite icon of a heart colored red\nvar ic = new FlxSprite(D.bmu.replaceColor(D.ui.getIcon(16,'heart'),0xFFFFFFFF,0xFFFF0000));\n``` \n--\u003e\n\n### Slice9 Tile mode Scaling \n\nIn 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.  \n\n![slice9](_readme/slice9.png) \n\n\u003c!------------------------------------\u003e\n\n# 📄 Notes \n\n### Games with Source Code\n:sunflower: **NEW**, Checkout the Source Code of **FUTURE KNIGHT DX**, a game that uses djFlixel for the Menu System among other things  \nhttps://github.com/john32b/futureknightdx\n\n\u003c!-- ### Games using this library\nTomb Explorer : https://john0032.itch.io/tombexplorer  \nFuture Knight Remix : https://john0032.itch.io/futurek  \n:exclamation: *If you have a program that uses this library, pm me and I'll add it here.* --\u003e\n\n### Project status and future\nPlease note that this is just a side project of mine, I cannot guarantee any support or bugfixes. **This library is provided \"as-is\"**\n\n###  Is there any documentation?\nYes, 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:\n\n\u003e **I have no plans to make a wiki or any other form documentation for this library.**\n\n\u003c!------------------------------------\u003e\n\n# :dna: Changelog\n\n- All updates and changelogs are in the [Announcements](https://github.com/john32b/djFlixel/discussions/categories/announcements) page here on github.\n- Old changelogs deleted, starting fresh. 🙊\n\n\u003c!------------------------------------\u003e\n\n# 📮 Closing\n\n### Notes on some library source files\n- 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.\n\n### Issues?\n- 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.\n\n### About\nI 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.\n\nThanks for checking this out 😸,  \nJohn.\n\n---\n\n**djFlixel** | **Author** : john32b  | **License** : MIT ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohn32b%2Fdjflixel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohn32b%2Fdjflixel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohn32b%2Fdjflixel/lists"}