Skip to content

Latest commit

 

History

History
1251 lines (1069 loc) · 87.9 KB

CHANGELOG.md

File metadata and controls

1251 lines (1069 loc) · 87.9 KB

5.9.0 (TBD)

New features:

  • FlxInputText: Add improved input text to core flixel (flixel-ui's implementation will be deprecated) (#3219)
  • FlxReplay: Add getDuration (#3135)
  • InputFrontEnd: (#3134)
    • Add addInput and addUniqueType to replace add
    • add destroyOld arg to the replace method
    • Allow more than one instance of a certain IFlxInputManager type
  • SoundFrontEnd: Add onVolumeChange signal (#3148)
  • FlxBasePath: (#3153)
    • Create base class for FlxPath for simpler custom path following logic
    • Add signals onEndReached, onFinished and onNodeReached
    • Replacement fields: startAt, direction, loopType, target, currentIndex, nextIndex, current and next
  • FlxGraphic: Add trackingInfo to help debugging graphics (#3183)
  • FlxFlicker: Add pause and resume (#3179)
  • FlxRect: Add clipTo and fix intersection bug (#3190)
  • FlxPointer: Add getGamePosition, gameX/Y, getViewPosition, and viewX/Y, to replace "screen" fields (#3210)
  • FlxAnimationController: Add onLoop, onFrameChange and onFinish, to replace callback and finishCallback (#3205) (#3216)
  • FlxStrip: Add support for blendmodes (3213)
  • FlxTextBorderStyle: Add SHADOW_XY, prevent border clipping (3236)
  • LogStyle: add callback to replace callbackFunction (3239)

Changes and improvements:

  • FlxKey: Add NONE to fromStringMap and toStringMap (#3119)
  • FlxPreloader: Improve documentation (#3123)
  • FlxDrawTrianglesItem: minor optimization (#3121)
  • FlxTypedTilemap: Add private createTile method for easier extension, with custom tile types (#3154)
  • FlxState: Improve doc for persistentUpdate & persistentDraw (#3155)
  • FlxCamera: Improve doc (#3161)
  • NextState: Improve doc (#3160)
  • FlxSprite: Account for scale, origin, offset, angle and pixelPerfectPosition in getGraphicMidpoint (#3125)
  • Major change to FlxTilemap and FlxTiles collision (#3158) (#3189)
    • FlxTile: Various features for allowing custom overlap/collision logic
      • Add dynamic methods overlapsObject and orientAt with helpers orient, orientByIndex and orientAtByIndex
      • Add onCollide signal, when overlaps are detected for collision purposes
    • Tilemaps: Add various new tools and helpers to FlxTilemap and FlxBaseTilemap
      • Added new forEachOverlappingTile which calls a method with every tile that overlaps an object
      • Added new forEachMapIndex which calls a method with every tile of a certain tile index
      • Added new isOverlappingTile method, allows you to check all tiles overlapping an object
      • Added new objectOverlapsTiles to replace the now deprecated overlapsWithCallbacks
        • Eschews flipCallbackParams arg, allowing better typing of both callback params
        • Adds isCollision flag to control whether the Tiles' collision callbacks are fired and allows for processing non-solid tiles
      • Added new helpers: getMapIndex, getMapIndexAt, getRow, getColumn, getTileIndex, getTileIndexAt, getTileData, getTileDataAt, tileExists, tileExistsAt, setTileIndex, setTileIndexAt, getColumnAt, getRowAt, columnExists, rowExists, columnExistsAt, rowExistsAt, getColumnPos, getRowPos, getColumnPosAt, getRowPosAt, getTilePos, getTilePosAt and getAllTilePos
      • FlxObject: Add internal helpers for processing tilemaps in separate, updateTouchingFlags and similar functions
      • Debug Drawing: Various improvements to debug drawing tilemaps
        • Now honors tiles' ignoreDrawDebug and debugBoundingBoxColor fields
        • New getDebugBoundingBoxColor in FlxObject. Meant to eventually replace drawDebugBoundingBox
  • FlxBGSprite: Prevent draw call when transparent (#3173)
  • FlxArrayUtil: Deprecate resize, use array.setLength (#3094)
  • Debugging: Check alpha when point-selecting sprites (#3184)
  • FlxBitmapText: Ignore border outline when computing field size (#3193)
  • FlxDebugger: Improve console code completion (#3222)

Bugfixes:

  • FlxFlickerTween: Fix "Unsupported recursive type" error on hl (#3170)
  • FlxBGSprite: Fix draw size when scale is not 1.0 (#3142)
  • FlxGraphic: Prevent null ref in getFramesCollections with destroyed graphics (#3180)
  • FlxText: Handle null align on HL (#3196)
  • FlxCamera: Fix blending issue (#3217) (#3255)
  • FlxStrip: Fix color preventing other strips from drawing (#3220)
  • FlxButton: Fix label position when moves is false (#3232)

5.8.0 (April 19, 2024)

New features:

  • FlxBitmapText: Add getRenderedText (#3120)

Bugfixes:

  • FlxSpriteGroup: Fix propegation of cameras field to members (#3118)
  • FlxBitmapText: Fix wrap issues caused from kerning (#3120)

5.7.2 (April 17, 2024)

Bugfixes:

  • FlxSpriteGroup: Better long term fix for members cameras (#3116)

5.7.1 (April 16, 2024)

Bugfixes:

  • FlxImageFrame: Prevent null ref from destroyed graphics (#3113)
  • FlxSpriteGroup: Fix issue where members draw to the wrong cameras (#3113)

5.7.0 (April 16, 2024)

New features:

  • FlxBitmapFont: Added setCharFrame (#3037)
  • FlxTimer: Added static wait and loops methods (#3040)
  • FlxBasic: Added container field and FlxContainer and FlxSpriteContainer where a basic can only be in one container (#3050) (#3055) (#3068)
  • FlxPath: Added centerMode to center on TOP_LEFT, CENTER, ORIGIN and more (#3052)
  • FlxG.plugins: Added drawOnTop field (#3057)
  • FlxCamera: Added stopFade, stopFlash, and stopShake (#3063)
  • FlxRect: Added containsXY (#3069)
  • FlxDebugger: Added button to toggle ignoreDrawDebug on selected objects (#3071)
  • FlxTween: Add tween-based flicker() system (#3086)
  • FlxButton: Add DISABLED state (#3087)
  • FlxBitmapFont: Honor kerning data from BMFont files (#3035)

Changes and improvements:

  • FlxBitmapText: Honor scale when changing width and height (#3037)
  • FlxSound: Deprecated sound.group setter, avoiding recursion errors (#3041)
  • FlxAssets: Allow the immediate use of async images, once loaded (#3022)
  • FlxText: Removed references to FlxUnicodeUtil (#3049)
  • FlxObject: Deprecated health and hurt (#3065)
    • Added compiler flag FLX_NO_HEALTH to create your own replacement, if needed (#3067)
  • Prevent building debug bitmaps in release mode (#3077)
  • FlxUnicodeUtil: Deprecated (#3078)
  • Various Changes brought up by EliteMasterEric (#3085)
    • FlxGraphic: Check isDestroyed for better error messages when using destroyed graphics
    • FlxGraphic: Prevent double destroy, and double adding of frame collections
    • FlxFlicker: Prevent double release() calls
  • FlxDebugger: Updated the URL to HaxeFlixel site (#3102)

Bugfixes:

  • FlxKeyboard: Fix PLUS key on windows (#3093)
  • FlxSpriteContainer: Fix error in destroy (#3095)
  • FlxSprite: Fix getGraphicMidpoint() (#3101)
  • FlxPool: Fix various point and rect pooling leaks (#3103) (#3108)
  • FlxAtlasFrames: Prevent errors when adding frames of size 0 (#3096)
  • FlxSound: Fix sound panning (#2863)

5.6.2 (February 10, 2024)

Changes and improvements:

  • FlxBitmapFont: Prevent crashes from missing xml fields in fromAngelCode (#3029)

5.6.1 (February 9, 2024)

Changes and improvements:

  • FlxBitmapFont: Downgraded crashes of missing xml fields to warnings in fromAngelCode (#3025)
  • Corrected documenation for the recent FlxG.switchstate arg changes

5.6.0 (February 2, 2024)

New features:

  • FlxGraphic: Added isDestroyed (#2974)
  • FlxBitmapFont: Support for all BMFont output file types (#2949)
  • FlxObject: Add static defaultMoves field (#2980)
  • FlxText: Add underline field (#3002)
  • FlxBitmapText: Add wrap field to expand wordwrap capabilities (#2722)
    • Can now choose various to split words, conditionally, like if they are too long to fit in one line
    • Also deprecates wordWrap and wrapByWord
  • Android: Set the default appCategory to "game" (#3009)

Changes and improvements:

  • FlxMouse: Made the private _cursor field public, and renamed to cursor (#2969)
  • Interaction: Changes to Flixel's Debug Pointer and Mover tools (#2964)
    • Hold Ctrl to drag selected objects, Shift to add to selection, Alt to remove from selection
    • works better with FlxObjects
    • See detailed list of changes here
  • PluginFrontEnd: Allow multiple plugins of the same type (#2952)
    • Add addPlugin, addIfUnique and removeAllByType
    • Deprecate add and removeType
  • Remove compile conditionals using FLX_DRAW_QUADS (#2962)
  • AseAtlas: Set animation loops to match Aseprite's own settings (#2963)
  • FlxMouseEvent: Added links to FlxMouseEvent Demo (#2961)
  • NextState: Allow ()->FlxState args in FlxG.switchState and FlxGame.new (#2997)
  • FlxSplash: Can now extend FlxSplash to add custom behavior (#2997)
  • FlxDrawQuadsItem: Improve performance by pre-calculating alpha (#2996)
  • FlxSpriteGroup: Now able to follow its path (#3014)
  • FlxAtlasFrames: Remove Hash<T> in favor of DynamicAccess<T> (#3015)
  • Various documentation (#3021) (#3012)

Bugfixes:

  • Prevent crash when drawing a sprite with a destroyed graphic, by loading the placeholder logo. (#2974)
  • FlxG: Fix HTML5 reflection issue where state.switchTo is null (#2985)
  • FlxBitmapText: Default text to "" instead of null (#2976)
  • FlxPlugin: Fix inline error on haxe 4.3.3 (#2986)
  • FlxKeyboard: Fix plus keybind on Mac (#2987)
  • FlxSignal: Fix one-time listeners not being removed on hashlink (#3004)
  • QuadPath: Prevent crash by avoiding divide by zero in getCurveLength (#3019)

5.5.0 (November 8, 2023)

New features:

  • FlxG: Added animationTimeScale (#2937)

Changes and improvements:

  • FlxPool: Use factory functions to create instances (#2934)

Bugfixes:

  • Fixed errors from OpenFL 9.3.2
  • FlxText: Remove warnings about potential typos (#2935)
  • FlxText: Regen graphic in getScreenBounds calls (#2942)
  • FlxBar: Various fixes (#2938)

5.4.1 (October 4, 2023)

Changes and improvements:

  • Various improvements and new features for animations (#2930)
    • FlxAnimation: Make frameDuration and looped public
    • FlxAnimation: Add timeScale (not to be confused with the same field added to FlxAnimationController in 5.4.0)
    • FlxAseAtlasUtils: Use fields repeat and direction when creating animations from Aseprite tag data
  • FlxTilemap: Add defaultFramePadding back (#2886)

Bugfixes:

  • FlxSoundTray: Fix sound tray hide animation (#2923)

5.4.0 (September 28, 2023)

New features:

  • README.md: Add Turkish translations
  • AssetPaths: Add allFiles field, and an arg in FlxAssets.buildFileReferences to change the identifier (#2807)
  • Debug tools: Add ways to remove custom debug tools (#2792)
    • FlxG.console: Add removeByAlias, removeEnum, removeClass, removeObject and removeFunction
    • FlxG.game.debugger.interaction: Add removeTool
  • FlxText: Add fieldHeight field (#2789)
  • FlxG: Add compiler flag FLX_NO_SAVE to remove FlxG.save (also counter-flag FLX_SAVE) (#2840)
  • FlxCamera: Add pixelPerfectShake field, for pixel-perfect camera shaking (#2841)
  • LogStyle: Allow log styles to throw errors (#2842)
  • FlxTilemap: add FlxTypedTilemap<T> (#2734)
  • FlxGroup: Various changes (#2806)
    • Add killMembers, reviveMembers and keyValueIterator
    • Add new searching utils getFirst, getLast, getFirstIndex, getLastIndex, any and every
    • Replace getFirstNull's loop with a simple indexOf check
    • Improve readibility and simplify loops under the hood
  • FlxSpriteUtil: Add setTint and setBrightness (#2869)
  • FlxAsepriteUtils: New util class with various helpers (via using FlxAsepriteUtil; (#2860)
    • Added loadAseAtlas, addAseAtlasTagsByIndex, and addAseAtlasTagsByPrefix
    • Added TexturePackerAtlas and AseAtlas types
    • Added Aseprite metadata types: AseAtlasMeta, AseAtlasTag, AseAtlasSlice and AseAtlasLayer
    • Deprecated TexturePackerObject, TexturePackerFrameData and TexturePackerFrameRect for TexturePackerAtlas, TexturePackerAtlasFrame and AtlasRect, respectively;
  • FlxAtlasFrames: Added multi-atlas capabilities with addAtlas and concat (#2772)
  • FlxAnimationController: add timeScale field to control animation speed (#2913)

Changes and improvements:

  • FlxEase: Simplify bounceIn and bounceInOut (#2788)
  • Fix typos in various docs (#2793)(#2799)
  • FlxBaseTilemap: Log errors rather than throw exceptions in setTileProperties with invalid args (#2815)
  • Add hxformat.json to published Flixel release (#2818)
  • FlxSprite: Add erroneously unused camera arg when calling pixelsOverlapPoint (#2824)
  • Changed references to the flash package to their openfl equivalent, whenever possible (#2832)
  • FlxSpriteUtil: Fix cameraWrap and cameraBound error when camera scroll is non-0 (#2851)
  • FlxBar: Fix pixel perfect rendering issue (#2853)
  • FlxText: Trigger re-draw when text is set to empty string (#2846)
  • FlxPoint: Small doc fix (#2873)
  • FlxAndroidKey: Fix @:enum deprecation warning (#2876)
  • Change FlxSprite.setColorTransform and FlxSpriteUtil.setOffsets args from ints to floats (#2875)
  • FlxSprite: Change setGraphicSize args from ints to floats (#2881)
  • FlxAnimationController: Accept float for all functions taking frameRate (#2884)
  • FlxCamera: Make the filters array public (#2890)
  • FlxSubState: Destroy _bgSprite (#2897)
  • FlxCamera: Improve SCREEN_BY_SCREEN follow mode and add bindScrollPos method (#2903)
  • Watch: Allow addFunction to overwrite existing watches (#2902)
  • FlxMath: Wrap methods and imports in conditionals when in macros (#2911)
  • Assets: Run DeveImageOptimizer on all of HaxeFlixel's image assets (#2901)
  • FlxG: Allow openURL to work with any URL protocol (#2877)

Bugfixes:

  • FlxAnimation: Fix issue where finishCallback wasn't being fired on reversed animations (#2811)
  • FlxTilemap: Reset buffers when loading maps a second+ time from the same instance (#2883)
  • FlxPointer: Fix overlaps calls with a specified camera arg (#2885)
  • FlxStrip: Fix black shapes when drawDebug is true (#2906)
  • FlxBitmapText: Fix textColor not applied correctly (#2918)
  • FlxCamera: Fix camera lerping speeds on lower fps (#2920)

5.3.1 (May 7, 2023)

Changes and improvements:

  • Change all @:enum abstract to enum abstract to prevent warnings in haxe 4.3.1 (#2790)
  • FlxAnimation: Prevent crash when destroying sprites in an anim callback (#2785)
  • FlxCollision: Fix gap in createCameraWall (#2781)

5.3.0 (April 26, 2023)

Dependencies:

  • Dropped support for haxe 4.0 and 4.1, use 4.2.5 or higher

New features:

  • FlxAtlasFrames: Add addFrameOffset and addFramesOffsetByPrefix (#2746)
  • FlxFrame: Add duration (#2752)
    • FlxAtlasFrames: Add fromAseprite which takes Aseprite generated Json, and honors frame duration
  • FlxState: Add startOutro, deprecate switchTo (#2768)

Changes and improvements:

  • FlxSound and FlxSoundGroup: Moved to the flixel.sound package, deprecate old package (#2726)
  • FlxBitmapText: Add x, y and text args to constructor (#2750)
  • FlxAtlasFrames: Take Xml in fromSparrow (#2751)
  • FlxBitmapFont: Take Xml in fromAngelCode (#2751)
  • FlxAnimation: Deprecate delay in favor of the new frameDuration field (#2752)
  • FlxAnimation and FlxColor: Small fixes (#2755)
  • FlxSound: Fix doc comment (#2767)
  • FlxSprite: Better warnings for invalid width/height args on loadGraphic (#2762)
  • FlxCamera: Allow followLerp to be used with NO_DEAD_ZONE (#2771)
  • Improve docs (#2777) (#2778)

Bugfixes:

  • FlxSave: Fixed issue with mergeDataFrom where overwrite = true (#2738)
  • FlxText: Fix embedFonts getter (#2749)
  • DebugFrontEnd: Fixed freezing bug when pressing tab on debug (2760)
  • LogFrontEnd: Fixed null crashes when logging before FlxGame in created (2779)
  • FlxSave: Fixed saves with multiple invalid characters (#2779)

5.2.2 (February 15, 2023)

Bugfixes:

  • FlxGamePad: Fix various "firstPressed" functions (#2728)
  • FlxSave: Prevent crash when hiding debug windows, after FlxG.save.bind is called (#2725)
  • FlxCamera: remove uses of camera.camera (#2731)

5.2.1 (January 20, 2023)

Bugfixes:

  • FlxSave: Fix save location on android and ios (#2718)

5.2.0 January 17, 2023

New features:

  • FlxMouse: added deltaX, deltaY, deltaScreenX and deltaScreenY (#2709)
  • FlxCamera: added public view and viewMargin properties, deprecated old, private viewOffset fields(#2714)

Changes and improvements:

  • FlxStrip: allows shaders and color transforms (#2696)

Bugfixes:

  • FlxSpriteGroup: Fix findMinY() and findMaxY() returning x instead of y (#2713)

5.1.0 December 22, 2022

Changes and improvements:

  • SoundFrontEnd: added soundTray getter for FlxG.game.soundTray (#2706)

New features:

  • FlxArrayUtil: Added swap, swapByIndex, safeSwap and safeSwapByIndex (#2685)
  • FlxDirectionFlags: Added hasAny (#2705)

Bugfixes:

  • FlxPoint: fixed math error in rotate, pivotDegrees and pivotRadians (#2700)
  • FlxObject: fixed isTouching and wasTouching to check any given instead of all (#2705)

5.0.2 November 30, 2022

Changes and improvements:

  • FlxAssetPaths: Warnings involving assets will point to that asset instead of the build macro. (#2684)
  • FlxTilemap: Honors FlxSprite.defaultAntialiasing (#2688)

5.0.1 November 23, 2022

Bugfixes:

  • Fix lime < 8 not being properly defined to FLX_NO_PITCH (#2678)
  • AssetPaths: various fixes (#2680)
    • apply include/exclude args to files, not directories
    • default file renamer will replace spaces with underscore

New features:

  • FlxKeys: Added SCROLL_LOCK, NUMLOCK, WINDOWS, MENU, BREAK and NUMPADSLASH keys (#2638)

5.0.0 (November 20, 2022)

The alpha was causing issues with CI due to haxelib issues. We're foregoing the alpha, since the new features are considiered "stable".

5.0.0-alpha.2 (November 19, 2022)

Bugfixes:

  • FlxDefines prevent compile error when targeting lime 7 on non-sys targets (#2676)

5.0.0-alpha (November 19, 2022)

New features:

  • FlxMouse: Added released, releasedRight and releasedMiddle (#2496)
  • Angles: Added various degree/radian specific versions of existing angle helpers (#2482)
  • FlxDirectionFlags: Various helpers
    • Added degrees and radians fields (#2482)
    • added fromBools static helper (#2480)
  • FlxVector: Added copyTo (#2550)
  • FlxCollision: Added calcRectEntry and calcRectExit (#2480)
  • FlxTilemap: Overhaul to pathfinding (#2480)
    • FlxPathfinder: Allows customizable pathfinding algorithms for tilemap
    • FlxPathSimplifier: Replace findPath simplify args with a new enum
    • Expose previously private fields: tileWidth, tileHeight, scaledTileWidth, scaledTileHeight, scaledWidth, and scaledHeight
    • FlxBaseTilemap: added calcRayEntry and calcRayExit
  • FlxPath: various new features
    • added immovable bool (previously, objects were always immovable when following paths) (#2480)
    • added angleOffset to augment the angle of sprites following paths (2674)
  • FlxPathDrawData: added myFlxPath.debugDrawData to allow custom colors and draw properties (#2480)
  • FlxAxes: added x and y getters, NONE value, toString, fromStringand fromBools methods (#2480, #2659)
  • FlxTween: added ShakeTween and FlxTween.shake() helper (#2549)
  • WatchFrontEnd: added FlxG.watch.addFunction (#2500)
  • FlxPoint: added binary operators +, -, +=, -=, *, and *= (#2557)
  • FlxColor: added rgb getter and setter (#2555)
  • FlxSave: added mergeDataFrom, mergeData status, isBound and isEmpty (#2566) (#2584)
  • FlxAnimation - added loopPoint to allow looping to a frame other than the starting frame (#2621)
  • FlxSound - added pitch to alter the playback speed (#2564)
  • FlxSprite - added getPixelAt, getPixelAtScreen, transformWorldToPixels and transformScreenToPixels (#2640)
  • FlxStringUtil - added toTitleCase and toUnderscoreCase (#2670)
  • FlxAssets - changed parameters to buildFileReferences (Affects AssetPaths) (#2575)
    • replaced filterExtensions arg with include and exclude args
    • changed rename arg to take the full filepath, can return null to exclude

Bugfixes:

  • FlxSprite: Fixed loadRotatedGraphic to solve Mod by 0 (#2518)
  • FlxText: Fixed alignment issues across platforms (#2536)
  • FlxBitmapText: Fixed issue on non-multiline text with wordWrap disabled (#2590)
  • FlxTypedButton - prevent onOver sound when releasing a button (#2657)

Changes and improvements:

  • Collision: preserve momentum in FlxG.collide (#2422)
  • Angles: All angle utils treat right as 0 (affects FlxSwipe and FlxPath) (#2482)
  • FlxAngle: deprecated: getCartesianCoords, getPolarCoords, angleFromFacing and FlxPoint.angleBetween (#2482)
  • FlxTilemap: renamed ray to rayStep added new ray with no resolution arg (#2480)
  • FlxPath: move to flixel.path.FlxPath (#2480)
  • FlxPoint/FlxVector: moved all FlxVector fields and methods into FlxPoint (#2557)
  • FlxSave: changed the default save name and path to unique values based on Project.xml metadata (#2566)
  • FlxTilemap: Replaced useScaleHack with static defaultFramePadding to fix tile tearing (#2581)
  • FlxSprite: various improvements.
    • improved pixelsOverlapPoint with scaled or angled sprites (#2576)
    • this also improves FlxMouseEvents with the pixelPerfect arg enabled
    • added defaultAntialiasing (#2658)
  • FlxGame: removed misleading zoom arg from constructor (#2591)
  • FlxMouseEventManager: Changed from a static manager to an instance. Use FlxMouseEvent for the default manager (#2540)

4.11.0 (January 26, 2022)

Dependencies:

  • Dropped support for haxe 3, use 4.0.5 or higher

New features:

  • FlxAnimationController: added getAnimationList, getNameList, exists and rename (#2473)
  • FlxRect: added getRotatedBounds (#2298)
  • FlxObject: added getRotatedBounds (#2298)
  • FlxSprite: added getScreenBounds (#2298)
  • FlxSpriteUtil: added cameraWrap and cameraBounds (#2298)
  • FlxCamera: added getViewRect and containsRect (#2298)

Bugfixes:

  • Fixed segmentation faults on Hashlink for linux (#2487)
  • FlxSpriteGroup: kill, revive and revive call the respective function on members (#2423)

Changes and improvements:

  • FlxCollision: improved pixelPerfectCheck performance, now honors scale (#2298)
  • FlxSprite: improved isOnScreen accuracy (#2298)
  • FlxCamera: added putWeak call in containsPoint (#2298)
  • FlxObject: screenCenter defaults to XY rather than null (#2441)
  • FlxState: Clarify restrictions in state constructors (#2479)

4.10.0 (September 12, 2021)

New features:

  • Added FlxDirectionFlags and FlxDirection (#2303)
  • FlxBitmapText: added support for unicode combining diacritical marks (#2309)
  • FlxTextFormat: added leading (#2334)
  • FlxAction: added addAndroidKey() (#2393)
  • FlxVector: added setPolarRadians() and setPolarDegrees() (#2401)

Bugfixes:

  • FlxAssetPaths: fixed paths for iOS (#2345)
  • VarTween: fixed an error if cancel() is called during onUpdate (#2352)
  • FlxGradient: fixed last pixels sometimes not being filled (#2367)
  • FlxTilemap: fixed built-in autotile assets for HTML5 (#2402)
  • FlxDebugger: fixed single-character vertical text in the stats window

Changes and improvements:

  • FlxSpriteUtil: enabled drawRoundRectComplex() for non-Flash targets (#2332)
  • FlxTween: allowed cancelTweensOf() to cancel "grandchild" tweens (#2354)

4.9.0 (April 11, 2021)

Dependencies:

  • Compatibility with Haxe 4.2.x

New features:

  • FlxTween: added cancelTweensOf() and completeTweensOf() (#2273)
  • FlxSound: added an OnLoad callback to loadStream() (#2276)
  • FlxState: added subStateOpened and subStateClosed signals (#2280)
  • FlxG.cameras: added a DefaultDrawTarget argument to add() and setDefaultDrawTarget() (#2296)

Bugfixes:

  • FlxTween: fixed an issue with setting startDelay after tween creation (#2262)
  • FlxEmitter: fixed maxSize not being set to Quantity in makeParticles() (#2265)
  • FlxBitmapFont: fixed infinite loops caused by "farbling" in the Brave browser (#2300)

Changes and improvements:

  • FlxG.plugins: improved type safety for get() and remove() (#2292)
  • FlxAtlasFrames: improved animation support in fromLibGdx() (#2278)
  • FlxBasic: assign an incremented ID for each created instance (#2266)
  • FlxCamera: deprecated defaultCameras in favor of default draw targets in FlxG.cameras (#2296)

4.8.1 (July 16, 2020)

  • improved rendering performance on low-end devices

4.8.0 (July 2, 2020)

New features:

  • FlxSplash: added muted (defaults to true on HTML5)
  • FlxBaseKeyList: added NONE (#2253)
  • FlxKeyManager: added released (#2253)
  • FlxGamepad:
    • added Switch Pro controller mappings (#2254)
    • added getInputLabel() (#2254)
  • FlxText: added support for removing partial ranges in removeFormat() (#2256)

Bugfixes:

  • FlxGamepad: fixed pressed not being true during the first justPressed frame (#2253)
  • FlxKeyManager: fixed anyPressed([ANY]) not working (#2253)

Changes and improvements:

  • Fixed Std.is() deprecation warnings with Haxe 4.2

4.7.0 (April 12, 2020)

New features:

  • FlxGroup: added support for specifying cameras (#2232)

Bugfixes:

  • FlxButton: fixed mouseButtons handling (#2246)
  • FlxTilemap: handle negative tile indices for all load methods, not just CSV (#2250)
  • FlxVirtualPad: fixed graphic not showing up on HTML5
  • OUYAID: fixed button mappings (#2234)

Changes and improvements:

  • FlxAnimation: changed frameRate to a Float (#2252)

4.6.3 (August 21, 2019)

  • Compatibility with Haxe 4.0.0-rc.3
  • FlxAssetPaths: added support for custom renaming (#2227)

4.6.2 (June 19, 2019)

  • FlxGraphicsShader: fixed crashes on some old iOS devices (#2219)
  • FlxG.android:
    • fixed preventDefaultKeys handling with OpenFL 8+ (#2218)
    • fixed the key codes for FlxAndroidKey.BACK and MENU with OpenFL 8+ (#2218)

4.6.1 (April 2, 2019)

Bugfixes:

  • FlxDebugger:
    • disabled mouse input when the debugger interaction tool is active (#2209)
    • clear the transform tool target on state switches
  • FlxBasePreloader: fixed a crash on the HashLink target

4.6.0 (February 4, 2019)

Dependencies:

  • Compatibility with Haxe 4.0.0-rc.1

New features:

  • Added a new FlxAction API / flixel.input.actions (#1805)
  • FlxGamepadManager: added deviceConnected and deviceDisconnected (#1805)
  • FlxBitmapText: added clipRect support (#2171)
  • FlxTilemap: added 47 tile autotiling (#2184)
  • FlxG.signals:
    • added preGameStart (#2188)
    • added postStateSwitch (#2207)
  • FlxSave: added support for local storage paths (#2202)
  • FlxVector: added weak() support and turned it into an abstract (#2191)
  • Added blend mode support for drawQuads() rendering with OpenFL 8.8.0+ (#2199)

Bugfixes:

  • FlxFilterFrames: fixed previous offset being ignored in applyToSprite() (#2176)
  • FlxBitmapFont: fixed background only being removed on Flash in fromXNA() (#2187)
  • Fixed drawQuads() rendering issues if there are color offsets, but no multipliers (#2195)
  • Fixed FlxSubState not being updated in the frame it is entered (#2204)
  • FlxText: fixed frame size not always being correct when updateHitbox() is called (#2205)

4.5.1 (September 7, 2018)

  • Fixed compatibility with OpenFL 8.5.0
  • FlxSoundGroup: fixed add() adding sounds twice

4.5.0 (August 10, 2018)

Dependencies:

  • Added support for Lime 7

New features:

  • FlxTween:
    • added support for tweening sub-properties like "scale.x" with tween() (#2152)
    • added a FlxTweenType enum abstract and deprecated the constants in FlxTween
  • FlxSpriteGroup: added directAlpha (#2157)
  • FlxDebugger: added a transform interaction tool (#2159)

Bugfixes:

  • FlxBitmapText: fixed clipping issues with text using borders (#2151)
  • FlxAssetPaths: fixed variables with invalid Haxe identifiers being generated (#1796)
  • FlxSpriteUtil: fixed spaceFromBounds in space() not being respected (#1963)
  • FlxSpriteGroup: fixed sprites not showing up again after setting alpha to 0 (#1353)

Changes and improvements:

  • FlxSpriteUtil: added an argument allowing to use a positioning function in space() (#2154)
  • FlxG.accelerometer: enabled accelerometer support on HTML5

4.4.2 (June 12, 2018)

  • Fixed compatibility with Haxe 4.0.0-preview.4

4.4.1 (May 10, 2018)

  • Fixed an issue with code completion on the Flash target in VSCode

4.4.0 (May 4, 2018)

Dependencies:

  • Added support for OpenFL 8 and Lime 6.3.0 (#2136)
  • Removed support for Haxe versions < 3.4.0
  • Fixed compatibility with Haxe 4 / development

New features:

  • FlxStringUtil: added getEnumName() (95615382)
  • FlxG.console: added registerEnum() (24905c4b)
  • FlxMouse: added justMoved (#2087)
  • FlxMouseEventManager:
    • added mouse move, click, double-click and wheel events (#2087)
    • added maxDoubleClickDelay (#2087)

Bugfixes:

  • FlxDebugger console: fixed enum completion on non-Flash targets (404c16b3)
  • FlxMouseEventManager:
    • fixed mouseOver being fired before mouseOut (#2103)
    • fixed items with mouseChildren = false still allowing events for overlapping objects (#2110)
  • FlxAssetPaths: fixed filterExtensions for files with multiple dots (#2107)
  • FlxDebugger interaction tool: fixed custom cursors not showing on native targets (ca52e7a2)
  • FlxDebugger console: fixed tab not focusing the text field on native targets
  • FlxMath: fixed roundDecimals() for large inputs (#2127)
  • FlxG.sound: fixed sounds not being removed from the default groups on state switches (#2124)
  • FlxBar: fixed bars not reaching 100% by rounding (#2139)

Changes and improvements:

  • FlxG.keys: added arrow keys, space and tab to preventDefaultKeys on HTML5
  • FlxSpriteGroup: added a camera setter override (#2146)

4.3.0 (July 22, 2017)

New features:

  • FlxTween: added cancelChain() (#1988)
  • FlxMatrix: added transformX() and transformY() (dcc66b3)
  • FlxCamera: added containsPoint() (#1964)
  • FlxSubState: added openCallback (#2023)
  • FlxSpriteGroup:
    • added insert() (#2020)
    • added clipRect support (#2051)
  • FlxSoundGroup: added pause() and resume() (#2043)
  • FlxDebugger interaction tool:
    • added tooltips (#2006)
    • added a selection rectangle (#1995)
  • FlxDebugger console: added an "Entry Type" quick watch entry (d354352)
  • FlxStringUtil: added getHost() (#1996)
  • FlxPoint: added toVector() (#2061)
  • FlxGamepad: added getAnalogAxes() (#2064)
  • FlxMouse: added getters for justPressedTimeInTicks (#2070)
  • FlxEase: added linear / smooth / smoother functions (#2080)

Bugfixes:

  • FlxAnimation: fixed reversed animations (#1998)
  • FlxRandom: fixed getObject() not respecting startIndex (#2009)
  • FlxGroup: fixed remove() with Splice = true not decreasing length (#2010)
  • FlxStringUtil: fixed an issue with decimals in formatMoney() (#2011)
  • FlxMouseEventManager:
    • fixed overlap checks for off-camera sprites (#1964)
    • fixed pixel-perfect overlaps with offset (#1999)
    • fixed reset logic on state switches (#1986)
  • FlxPreloader: fixed missing assets with full DCE (764a5a8)
  • FlxG.cameras: fixed reset() not removing all cameras (#2016)
  • FlxAnimationController: fixed flipX / Y not being copied in copyFrom() (#2027)
  • haxelib run flixel: fixed the working directory not being passed on (61f2c20)
  • FlxDebugger interaction tool:
    • fixed selection of FlxSpriteGroup members (89a4ee2)
    • fixed selection of objects in substates (69042ab)
    • fixed selections being canceled on interaction with debugger UI (897f21f)
  • FlxG.html5: fixed platform detecting iPhone and iPod as "Mac" (#2052)
  • FlxTilemap: fixed a missing bounds check in getTileIndexByCoords() (#2024)
  • FlxAnalog: fixed mouse input without FLX_NO_TOUCH (#2067)
  • flixel.input: fixed Float being used for tick values (#2071)
  • FlxCamera: fixed object visibility for zoom < 1 (#2003)
  • FlxEmitter: fixed issues with lifespan == 0 (#2074)

Changes and improvements:

  • FlxBitmapText: allowed negative lineSpacing values (#1984)
  • FlxStringUtil: made getDomain() more robust (#1993, #1996)
  • FlxG.signals: changed gameResized to be dispatched after camera resize (#2012)
  • FlxAtlasFrames: allowed passing a parsed Description in fromTexturePackerJson() (#2021)
  • FlxG.watch: optimized expression watch entries (#2004)
  • FlxDebugger console:
    • allowed null objects in registerObject() to unregister (f52c73e)
    • registered a reference to the current selection of the interaction tool (1bb7b48)
    • prevented unpause after manual pausing through UI (56854fc)
  • FlxBasePreloader: improved the design of the sitelock failure notice (#1994)
  • FlxFlicker: made stop() public (#2084)
  • FlxAnalog: several fixes and improvements (#2073)

4.2.1 (March 4, 2017)

  • fixed rendering with Haxe 3.4.0 and OpenFL Next

4.2.0 (October 11, 2016)

New features:

  • FlxG.html5: added platform and onMobile (#1897)
  • FlxText: added support for multi-character markers in applyMarkup() (#1908)
  • FlxG: added onMobile (#1904)
  • FlxPreloader: added HTML5 support (#1846)
  • FlxTweenManager and FlxTimerManager:
    • added forEach() (#1782)
    • added completeAll() (#1782, #1933)
    • added manager, renamed static manager to globalManager (#1934)
  • FlxPath:
    • added setProperties() (#1875)
    • added a this return to some methods (#1875)
  • FlxG.cameras: added cameraAdded, cameraRemoved and cameraResized signals (edf93b5)
  • FlxDebugger: added a tools panel to interact with objects (#1862)
  • ConsoleCommands: added a step() command (#1910)
  • FlxG.console: added stepAfterCommand (#1910)
  • FlxSound:
    • added length (#1915)
    • added endTime (#1943)
    • added an EndTime argument to play() (#1943)
  • FlxMouse: added registerSimpleNativeCursorData() (73b0ff2)
  • FlxRandom: added shuffle() (#1947)
  • WatchEntry:
    • added support for cycling through true / false with up / down (39f7dca)
    • added support for cycling through enum values with up / down (5702c92)
  • FlxAnimation: added support for changing frames (#1967)
  • FlxObject: added debugBoundingBoxColorSolid, -NotSolid and -Partial (#1847)
  • FlxTilemap:
    • drawDebug now colors partially collidable tiles differently (#1847)
    • non-colliding tiles are now transparent by default in drawDebug (#1847)
  • Added an HTML5 template to center games horizontally (#1918)
  • Added support for haxelib run flixel as an alias for haxelib run flixel-tools (#1950)

Bugfixes:

  • FlxBitmapText: fixed alpha not working (#1877)
  • FlxEmitter: fixed properties not being ignored if their .active is set to false (#1903)
  • FlxCamera:
    • fixed scroll bounds not taking zoom into account (#1889)
    • fixed rendering issues with bgColor == 0x0 on Next (#1793)
  • FlxTilemap: fixed buffers not being resized on camera changes (#1801)
  • FlxSpriteGroup:
    • fixed drawDebug() not being called (#1905)
    • fixed revive() not setting children's alive (#1891)
  • flixel.input.gamepad.mappings: fixed some mappings for digitized stick movements (c04ce96)
  • FlxAtlasFrames: fixed offset parsing for whitespace-stripped atlases in fromLibGdx (#1923)
  • FlxKeyboard: fixed some FlxG.debugger.toggleKeys and FlxG.vcr.cancelKeys not working on native (470c8e8)
  • FlxMouse: fixed FlxButton presses during VCR playback (#1729)
  • FlxSprite:
    • fixed a position discrepancy between simple and complex render (#1939)
    • fixed default graphic not showing on HTML5 (2da3523)
  • FlxCollision: fixed an animation-related crash with FlxG.renderBlit (#1928)
  • FlxTimerManager: fixed issues related to adding / removing timers in onComplete (#1954)
  • WatchEntry: fixed variables being turned into String on Neko (#1911)
  • FlxVector: fixed normalize() returning (1,0) for (0,0) (#1959)
  • FlxFrame: fixed inconsistent sorting across platforms (#1926)
  • FlxSubState: fixed close() if same instance is used in two different states (#1971)
  • CompletionHandler: fixed completion mid-text (#1798)

Changes and improvements:

  • flixel.util.helpers: changed the default value of active to true (d863892)
  • FlxGitSHA: optimized for compiler completion (f5dca1d)
  • FlxRect: added an optional result argument to intersection() (c52b534)
  • FlxG.debugger: added F2 to toggleKeys (f3f029c)
  • FlxRandom: deprecated shuffleArray() in favor of shuffle() (#1947)
  • FlxEmitter: emitParticle() now returns the particle (#1957)
  • FlxG.bitmap:
    • optimized getUniqueKey() (#1965)
    • clearing the cache now only affects unused graphics (#1968)
  • FlxFramesCollection: frame sizes are now checked and trimmed (#1966)

4.1.1 (August 5, 2016)

  • fixed the check for Lime <= 2.9.1

4.1.0 (July 10, 2016)

New features:

  • FlxG.vcr: added an OpenSaveDialog argument to stopRecording() (#1726)
  • FlxSound:
    • added loopTime (#1736)
    • added a StartTime argument to play() (#1736)
    • added fadeTween (#1834)
    • added a setter for time (#1792)
  • FlxMouse: added enabled
  • FlxGamepadInputID: added IDs for analog stick directions (#1746)
  • FlxG.watch: added addExpression() and removeExpression() (#1790)
  • Console:
    • added watch and watchExpression commands (#1790)
    • added Reflect, Std, StringTools, Sys, Type and FlxTween to default classes
  • CompletionHandler: added locals declared with var to completion
  • WatchEntry:
    • added a remove button
    • added Float rounding (to FlxG.debugger.precision decimals)
    • added support for in- / decrement of numeric values via up / down keys
    • added support for moving selection to start / end via up / down keys (non-numeric values)
  • FlxStringUtil: added isNullOrEmpty()
  • FlxDefines: added inverted versions of all FLX_NO-defines (e.g. FLX_DEBUG for FLX_NO_DEBUG)
  • FlxTileFrames: added spacing and border arguments to combineTileSets() and combineTileFrames() (#1807)
  • FlxBitmapDataUtil: added copyBorderPixels()
  • FlxGame: GameWidth and GameHeight in new() now use the window size if set to 0 (#1811)
  • FlxPoint: added scale() (#1811)
  • FlxBar: added numDivisions
  • FlxBaseTilemap: added loadMapFromGraphic() (#1525)
  • FlxAnimation: added the ability to set paused directly (#1538)
  • FlxTilemap: added antialiasing (#1850)
  • Added GLSL shader support for FlxSprite, FlxTilemap, FlxBar and FlxBitmapText (#1848)
  • FlxGraphic: added an optional Cache argument to fromFrame()
  • FlxG.debugger: added visibilityChanged (#1865)

Bugfixes:

  • FlxText: [Flash] fixed blurry lines on multiline texts with FlxTextAlign.CENTER (#1728)
  • FlxSound: fixed fadeOut() and fadeIn() not canceling the previous tween (#1834)
  • FlxGamepad: [Flash] fixed potential range errors when checking axis values
  • CompletionListEntry: fixed text width exceeding list width
  • FlxGame: [HTML5] fixed ticks holding the current date's timestamp instead of ms since game start
  • FlxCamera: fixed background scaling for zoom < 1 on native targets (#1588)
  • FlxBaseTilemap: [Neko,HTML5] fixed invalid array access in overlapsPoint() (#1835)
  • FlxObject: fixed overlapsPoint() at x / y = 0 (#1818)
  • FlxReplay: fixed simultaneous recording of key and mouse input (#1739)
  • FlxVelocity: fixed accelerateFromAngle() setting maxVelocity to negative values (#1833)
  • Fixed compilation with hscriptPos defined (#1840)
  • FlxDrawTilesItem: fixed numTiles value with color offsets
  • FlxBitmapFont: fixed a crash related to incorrect UTF-8 handling (#1857)
  • FlxAtlas: fixed a crash when the constructor is called with powerOfTwo == true (#1858)
  • FlxTween: fixed nested tween chains (#1871)
  • FlxTypedGroup: fixed recursion in forEachOfType() (#1876)
  • Tracker: [Neko] fixed a crash in setVisible() (#1879)
  • Fixed some flixel-internal fields being accessible when they shouldn't be (#1849)

Changes and improvements:

  • Console: removed resetState, switchState and resetGame commands
  • FlxArrayUtil: optimized flatten2DArray()
  • FlxSpriteUtil: changed alphaMask() arguments from Dynamic to FlxGraphicAsset (#1806)
  • FlxG.signals: changed preUpdate to be dispatched after FlxG.elapsed is updated (#1836)
  • FlxG.debugger: changed drawDebugChanged to be dispatched after drawDebug is updated
  • FlxDefines: added a check for incompatible OpenFL / Lime versions (should be < 4.0.0 / < 3.0.0 respectively)

4.0.1 (March 19, 2016)

  • FlxDebugger: [HTML5] fixed version text color (#1727)
  • FlxFlicker / LabelValuePair: fixed DCE issues (#1757)
  • FlxMouse: fixed useSystemCursor = true not always working with native cursor API
  • FlxDebugger mouse handling fixes (#1775):
    • fixed FlxMouse's visible and useSystemCursor not being restored properly
    • fixed cursor disappearing after losing Console focus with native cursor API
    • fixed mouse focus area of windows being too big
  • FlxAnimationController: fixed finishCallback firing multiple times in one frame (#1781)
  • FlxPreloader: [HTML5] fixed preloader not showing up (#1750)
  • FlxStringUtil.formatMoney():
    • fixed formatting for Amount < 0 (#1754)
    • fixed formatting for negative amounts
    • [HTML5] fixed formatting for amounts > Int32
  • Debugger Stats window: fixed paused time being taken into account for average FPS

4.0.0 (February 16, 2016)

Restructures:

  • Changed static inline vars to enums: (#998)
    • FlxCamera follow styles
    • FlxCamera shake modes
    • FlxText border styles
    • FlxTilemap auto-tiling options
    • FlxBar fill directions
    • FlxG.html5 browser types
  • Moved FlxMath, FlxPoint, FlxVector, FlxRect, FlxAngle, FlxVelocity and FlxRandom to flixel.math
  • Moved "typed" classes: (#1100)
    • FlxTypedGroup into FlxGroup.hx
    • FlxTypedSpriteGroup into FlxSpriteGroup.hx
    • FlxTypedEmitter into FlxEmitter.hx
    • FlxTypedButton into FlxButton.hx
  • The signature of update() functions was changed to update(elapsed:Float). The elapsed argument should be used instead of FlxG.elapsed. (#1188)

Rendering:

  • Added flixel.FlxStrip which supports rendering via drawTriangles()
  • Added an experimental rendering method using drawTriangles() (enabled by defining FLX_RENDER_TRIANGLE, requires FlxG.renderTile to be true).
  • The tile renderer now uses Tilesheet.TILE_RECT instead of addTileRect()
  • Renderers are now distinguished by FlxG.renderMethod (FlxG.renderBlit / FlxG.renderTile for easy access) instead of defines (FLX_RENDER_BLIT / FLX_RENDER_TILE). This allows for a fallback to software rendering on certain targets if hardware rendering is not available. (#1668)

flixel.FlxCamera:

  • added pixelPerfectRender as a global setting for sprites and tilemaps (#1060)
  • pixelPerfectRender now defaults to false with FlxG.renderTile (#1065)
  • bounds -> minScrollX, maxScrollX, minScrollY and maxScrollY (null means unbounded) (#1070)
  • setBounds() -> setScrollBoundsRect() (#1070)
  • added setScrollBounds()
  • added targetOffset (#1056)
  • added scrollRect sprite which crops the camera's view when the camera is scaled
  • camera now scales from its center, not its top left corner
  • followLerp is now a range taking values from 0 to (60 / FlxG.updateFramerate) - the closer to zero the more lerp! (#1220)
  • added snapToTarget() (#1477)
  • fade(): fixed FadeIn == true not working in a fade out callback (#1666)
  • follow(): removed the Offset argument (#1056)

flixel.FlxG:

  • debugger: fixed a crash when calling addTrackerProfile() before track()
  • signals:
    • split gameReset into pre/post signals
    • added preStateCreate (#1557)
  • android: preventDefaultBackAction has been replaced by preventDefaultKeys
  • inputs: added resetOnStateSwitch
  • added FlxG.addPostProcess() / removePostProcess()
  • added resizeWindow()
  • Added filtersEnabled and setFilters() to FlxCamera and FlxGame (#1635)
  • version now includes the commit SHA via a build macro

flixel.FlxObject:

  • added getPosition() and getHitbox()
  • split some of separate()'s functionality into updateTouchingFlags(), allowing touching to be used without any separate calls (#1555)
  • added path (#1712)

flixel.FlxSprite:

  • added graphicLoaded()
  • getScreenXY() -> getScreenPosition()
  • removed the NewSprite argument from clone()
  • added clipRect
  • frames -> numFrames
  • added frames which reflects the sprite's current frames collection
  • removed loadGraphicFromTexture() and loadRotatedGraphicFromTexture()
  • cachedGraphics -> graphic
  • added setFrames() which allows you to save animations which already exists in the sprite
  • colorTransform is always instantiated
  • added loadRotatedFrame() which allows you to generate prerotated image from given frame and load it
  • added error message then trying to get pixels and graphic is null
  • drawFrame() is no longer inline so it can be redefined in subclasses.
  • set_angle(): always change the prerotated animation angle to prevent delays
  • removed resetFrameBitmaps() method, since frames don't store bitmaps anymore. Set dirty to true to force the frame graphic to be regenerated in the next render loop.
  • added useFramePixels
  • setColorTransform()'s offset arguments now work with drawTiles rendering on OpenFL 3.6.0+ (#1705)
  • getFlxFrameBitmapData() -> updateFramePixels() (#1710)

flixel.FlxState:

  • onFocus() and onFocusLost() no longer require FlxG.autoPause to be false
  • added switchTo() (#1676)

flixel.animation:

  • FlxAnimation:
    • added reversed var which allows you to play animation backwards
    • second argument of play() method is Reversed now
    • added flipX and flipY (#1670)
  • FlxAnimationController:
    • curAnim does also return animations that have finished now
    • removed get()
    • callback: fixed old frameIndex value being passed instead of the current one
    • add() now makes a copy of the Frames array before calling splice() on it
    • fixed finished not being true during the last animation frame in the callback
    • added Reversed argument in play() method, which allows you to set animation's playback direction

flixel.effects:

  • FlxEmitter:
    • at() -> focusOn()
    • on -> emitting
    • emitters and particles now use FlxColor instead of separate red, green, and blue values
    • removed FlxEmitterExt, FlxEmitter now has two launch modes: CIRCLE (the new default) and SQUARE (#1174)
    • removed xPosition, yPosition, life, bounce, and various other properties, and property setting convenience functions (see below) (#1174)
    • a variety of values can now be set with much greater control, via lifespan.set(), scale.set(), velocity.set() and so on (#1174)
    • simplified start() parameters (#1174)
    • added angularDrag and angularAcceleration (#1246)
  • FlxParticle: (#1174)
    • maxLifespan -> lifespan, lifespan -> age, percent indicates (age / lifespan)
    • age counts up (as opposed to lifespan, which counted down)
    • range properties (velocityRange, alphaRange) which determine particle behavior after launch
    • "active" flags (alphaRange.active, velocityRange.active, etc) which FlxEmitter uses to control particle behavior

flixel.graphics:

  • FlxGraphic:
    • renamed from CachedGraphics and moved to flixel.graphics
    • added defaultPersist (#1241)
    • added fromAssetKey(), fromClass() and fromBitmapData()
    • bitmap is now settable
  • FlxAtlas:
    • moved to flixel.graphics.atlas
    • added addNodeWithSpacings()
    • added minWidth, maxWidth, minHeight and maxHeight (the size starts at min and grows up until max as images are added)
    • added powerOfTwo (forces atlas size to a power of two)
    • added allowRotation (indicates whether added images may be rotated to save space)
  • FlxNode:
    • moved to flixel.graphics.atlas
    • added getTileFrames() and getImageFrame()
  • Introduced a new frames collections concept replacing regions:
    • added FlxImageFrame frames collection which contains single frame
    • added FlxTileFrames frames collection which contains frames for spritesheet, which can be generated from image region or frame (including rotated and trimmed frames)
    • added FlxAtlasFrames frames collection instead of various texture atlas loaders (like SparrowData and TexturePackerData). It contains various static methods for parsing atlas files
    • added FlxFilterFrames frames collection instead of FlxSpriteFilter (see filters demo)
  • Rewrote PxBitmapFont and renamed it to FlxBitmapFont. It supports AngelCode, XNA and Monospace bitmap fonts now.
  • FlxFrame:
    • doesn't store the frame's bitmapatas anymore, so getBitmap() and other bitmap methods have been removed
    • added paint() and paintFlipped() methods instead. This solution requires much less memory, but will be a bit slower.
    • added flipX and flipY (#1591)

flixel.group:

  • FlxTypedGroup:
    • added a recurse argument to the forEach() functions
    • removed callAll() and setAll() - use forEach() instead (#1086)
    • replaced the parameter array in recycle() with an optional factory method (#1191)
    • revive() now calls revive() on all members of a group as well (#1243)
    • added insert() (#1671)
  • FlxTypedSpriteGroup: added iterator()

flixel.input:

  • FlxSwipe: duration now uses seconds instead of milliseconds (#1272)
  • FlxMouse and FlxTouch now extend a new common base class FlxPointer instead of FlxPoint (#1099)
    • adds overlaps() to FlxMouse

flixel.input.gamepad:

  • FlxGamepadManager:
    • better handling of disconnecting and reconnecting gamepads. getByID() can now return null.
    • anyButton() now has a state argument
    • globalDeadZone can now be 0
    • globalDeadZone now overshadows instead of overriding the gamepad's deadzone values
  • FlxGamepad:
    • refactored gamepads to include mappings, removing the need to write separate logic for each gamepad type (#1502):
    • each gamepad now has a model, mapping and name
    • moved the ID classes to flixel.input.gamepad.id
    • all IDs are now mapped to a value in FlxGamepadInputID
    • the previous "raw" gamepad IDs are now available via separate functions
    • added pressed, justPressed, justReleased and analog
    • removed the dpad properties, they are now mapped to buttons
    • added a connected flag
    • added deadZoneMode, circular deadzones are now supported (#1177)
    • anyButton() now has a state argument
    • added support for WiiMote (#1563) and PS Vita (#1714) controllers

flixel.input.keyboard:

  • FlxKeyboard:
    • added preventDefaultKeys for HTML5
    • added an abstract enum for key names (FlxG.keys.anyPressed([A, LEFT]) is now possible)
    • the any-functions now take an Array of FlxKeys instead of Array of Strings (string names are still supported)
    • removed FlxKey.NUMPADSLASH (SLASH has the same keycode)

flixel.input.mouse:

  • FlxMouseEventManager:
    • moved from flixel.plugin.MouseEventManager to flixel.input.mouse.FlxMouseEventManager
    • added removeAll() (#1141)
    • fixed inaccurate pixel-perfect sprite overlap checks (#1075)
    • now supports all mouse buttons (mouseButtons argument in add() / setObjectMouseButtons())

flixel.math:

  • FlxAngle:
    • changed rotatePoint() to not invert the y-axis anymore and rotate clockwise (consistent with FlxSprite#angle)
    • rotatePoint() -> FlxPoint#rotate() (#1143)
    • getAngle() -> FlxPoint#angleBetween() (#1143)
    • added angleFromFacing() (#1193)
    • fixed wrapAngle() (#1610)
    • removed angleLimit() (#1618)
  • FlxMath:
    • bound() and inBounds() now accept null as values, meaning "unbounded in that direction" (#1070)
    • wrapValue() -> wrap(), replaced the amount argument with a lower bound
    • changed MIN_VALUE and MAX_VALUE to MIN_VALUE_FLOAT and MAX_VALUE_FLOAT, added MAX_VALUE_INT (#1148)
    • added sinh() (#1309)
    • added fastSin() and fastCos() (#1534)
    • optimized isEven() and isOdd()
    • added remapToRange() (#1633)
    • getDistance() -> FlxPoint#distanceTo() (#1716)
  • FlxPoint:
    • inFlxRect() -> inRect
  • FlxRandom:
    • FlxRandom functions are now member functions, call FlxG.random instead of FlxRandom (#1201)
    • exposed currentSeed as an external representation of internalSeed (#1138)
    • removed intRanged() and floatRanged(), int() and float() now provide optional ranges (#1138)
    • removed weightedGetObject(), getObject() now has an optional weights parameter (#1148)
    • removed colorExt(), try using FlxColor to get finer control over randomly-generated colors (#1158)
    • updated random number generation equation to avoid inconsistent results across platforms; may break recordings made in 3.x! (#1148)
    • can now create an instance of FlxRandom to create deterministic pseudorandom numbers independently of HaxeFlixel core functions (e.g. particle emitters)
    • chanceRoll() -> bool()
    • added floatNormal() (#1251)
  • FlxRect:
    • added weak(), putWeak(), ceil() and floor()
    • containsFlxPoint() -> containsPoint()
  • FlxVelocity:
    • accelerateTowards*()-functions now only take a single maxSpeed argument (instead of x and y)

flixel.system:

  • FlxAssets:
    • cacheSounds() -> FlxG.sound.cacheAll() (#1097)
    • OpenFL live asset reloading is now supported (native targets)
  • FlxSound
    • can now be used even if FLX_NO_SOUND_SYSTEM is enabled (#1199)
    • looped is now public
    • added pitch (#1465)
    • added FlxSoundGroup (#1316)

flixel.system.debug:

  • Console:
    • refactored the console to be powered by hscript (#1637)
    • added auto-completion
    • fixed focus on native targets

flixel.system.scaleModes:

  • BaseScaleMode: added horizontalAlign and verticalAlign
  • RatioScaleMode#new(): added a fillScreen option
  • The FlxCamera sprite is now scaled (instead of FlxGame)

flixel.text:

  • Rewrote FlxBitmapTextField and renamed it to FlxBitmapText
  • FlxText:
    • added an abstract enum for alignment (text.alignment = CENTER; is now possible)
    • font now supports font assets not embedded via openfl.Assets (i.e. @:font)
    • font = null; now resets it to the default font
    • fixed an issue where the value returned by get_font() wouldn't be the same as the one passed into set_font()
    • added applyMarkup() (#1229)
    • fixed issues with borderStyle and FlxTextFormat on native
    • added stampOnAtlas() method, which stamps text graphic on provided atlas and loads result node's graphic into this text object
    • retrieving text dimensions (width and height) can now trigger text graphic regeneration (if any changes led to a dimensions change) to report the correct values
    • borderColor now supports alpha values / ARBG colors
    • fixed setFormat() resetting alignment (#1629)
  • Moved FlxTextField to flixel-addons

flixel.tile:

  • FlxBaseTilemap: added setRect() method which allows you to set a rectangular region of tiles to the provided index
  • FlxTile: added frame variable which holds tile's "graphic"
  • FlxTileblock:
    • added setTile() and tileSprite (#1300)
    • added loadFrames() method which allows you to use frames collection as a source of graphic
  • FlxTilemap:
    • separated rendering and logic, adding FlxBaseTilemap (#1101)
    • added getTileIndexByCoords() and getTileCoordsByIndex()
    • fixed a bug in overlapsAt()
    • loadMap() now treats tile indices with negative values in the map data as 0 (#1166)
    • added blend, alpha and color
    • added frames property, so you can change tilemap's graphic without reloading map
    • loadMap() accepts FlxGraphic, String, FlxTileFrames or BitmapData as TileGraphic now
    • loadMap() has been split into loadMapFromCSV() and loadMapFromArray() (#1292)
    • added loadMapFrom2DArray() (#1292)
    • added offset property (#1444)
    • allowCollisions now sets the allowCollisions property of each tile
    • fixed ray() not detecting a collision with perfectly diagonal start and end points (#1617)
    • findPath(): replaced WideDiagonal argument with DiagonalPolicy (#1659)

flixel.tweens:

  • FlxTween
    • complete callback parameter in options is now called onComplete. Its type, CompleteCallback, is now called TweenCallback. (#1273)
    • added onStart and onUpdate callback parameters in options (#1273)
    • fixed active = false; not doing anything during onComplete() of LOOPING or PINGPONG tweens
    • angle tween sets sprite's angle on start now
    • added then() and wait() for chaining (#1614)
    • made start() public (#1692)
    • active is now only true when in progress
  • Motion tweens:
    • the original FlxObject#immovable value is now restored after completion

flixel.ui:

  • FlxAnalog and FlxVirtualPad now have their own atlas to reduce draw calls
  • FlxTypedButton:
    • now implements IFlxInput, adding pressed, justPressed, released and justReleased
    • now uses animations for statuses instead of setting frameIndex directly for more flexibility (removes allowHighlightOnMobile, adds statusAnimations)
    • disabling the highlight frame is now tied to #if FLX_NO_MOUSE instead of #if mobile
    • labelAlphas[FlxButton.HIGHLIGHT] is now 1 for FLX_NO_MOUSE
    • set_label() now updates the label position
    • added maxInputMovement
    • added mouseButtons to control which mouse buttons can trigger the button
    • label is no longer initialized if the text passed to new() is null
    • added stampOnAtlas() for draw call optimization
  • Added FlxSpriteButton

flixel.util:

  • FlxArrayUtil:
    • removed indexOf()
    • moved randomness-related to FlxRandom (#1138)
  • FlxBitmapDataUtil:
    • renamed from FlxBitmapUtil (#1118)
    • added replaceColor() (used by FlxSprite#replaceColor())
    • added addSpacing()
    • added generateRotations()
  • FlxColor:
    • FlxColor is now an abstract, interchangeable with Int - the FlxColorUtil functions have been merged into it (#1027)
    • the color presets have been reduced to a smaller, more useful selection (#1117)
  • FlxPath:
    • the original FlxObject#immovable value is now restored after completion
    • active is now only true when in progress
    • fixed velocity being set even if the object position matches the current node
    • exposed nodeIndex as a read-only property
    • removed the Object argument from start(), now the path has to be assigned to FlxObject#path (#1712)
  • FlxPool:
    • improved pooling performance (#1189)
  • FlxSignal:
    • fixed a bug that occurred when calling remove() during a dispatch (#1420)
  • FlxSpriteUtil:
    • drawLine(): default settings for lineStyle are now thickness 1 and color white
    • fadeIn() and fadeOut() now tween alpha instead of color
    • added drawCurve() (#1263)
    • removed FillStyle, the same functionality is now covered by FillColor
    • moved screenCenter() to FlxObject and changed the the arguments from two booleans to the FlxAxes enum (#1541)
  • FlxTimer:
    • complete -> onComplete (#1275)
    • active is now only true when in progress

Other:

  • Added an initialization macro that aborts compilation with helpful errors when:
    • targeting older SWF versions with invalid defines
    • using an unsupported Haxe version
  • Flixel sound assets are now being embedded via embed="true"