- Dropped support for haxe 4.0 and 4.1, use 4.2.5 or higher
FlxAtlasFrames
: AddaddFrameOffset
andaddFramesOffsetByPrefix
(#2746)FlxFrame
: Addduration
(#2752)FlxAtlasFrames
: AddfromAseprite
which takes Aseprite generated Json, and honors frame duration
FlxState
: AddstartOutro
, deprecateswitchTo
(#2768)
FlxSound
andFlxSoundGroup
: Moved to theflixel.sound
package, deprecate old package (#2726)FlxBitmapText
: Addx
,y
andtext
args to constructor (#2750)FlxAtlasFrames
: TakeXml
infromSparrow
(#2751)FlxBitmapFont
: TakeXml
infromAngelCode
(#2751)FlxAnimation
: Deprecatedelay
in favor of the newframeDuration
field (#2752)FlxAnimation
andFlxColor
: Small fixes (#2755)FlxSound
: Fix doc comment (#2767)FlxSprite
: Better warnings for invalidwidth
/height
args onloadGraphic
(#2762)FlxCamera
: AllowfollowLerp
to be used withNO_DEAD_ZONE
(#2771)- Improve docs (#2777) (#2778)
FlxSave
: Fixed issue withmergeDataFrom
whereoverwrite = true
(#2738)FlxText
: FixembedFonts
getter (#2749)DebugFrontEnd
: Fixed freezing bug when pressing tab on debug (2760)LogFrontEnd
: Fixed null crashes when logging beforeFlxGame
in created (2779)FlxSave
: Fixed saves with multiple invalid characters (#2779)
FlxGamePad
: Fix various "firstPressed" functions (#2728)FlxSave
: Prevent crash when hiding debug windows, afterFlxG.save.bind
is called (#2725)FlxCamera
: remove uses of camera.camera (#2731)
FlxSave
: Fix save location on android and ios (#2718)
FlxMouse
: addeddeltaX
,deltaY
,deltaScreenX
anddeltaScreenY
(#2709)FlxCamera
: added publicview
andviewMargin
properties, deprecated old, private viewOffset fields(#2714)
FlxStrip
: allows shaders and color transforms (#2696)
FlxSpriteGroup
: FixfindMinY()
andfindMaxY()
returningx
instead ofy
(#2713)
SoundFrontEnd
: addedsoundTray
getter forFlxG.game.soundTray
(#2706)
FlxArrayUtil
: Addedswap
,swapByIndex
,safeSwap
andsafeSwapByIndex
(#2685)FlxDirectionFlags
: AddedhasAny
(#2705)
FlxPoint
: fixed math error inrotate
,pivotDegrees
andpivotRadians
(#2700)FlxObject
: fixedisTouching
andwasTouching
to check any given instead of all (#2705)
FlxAssetPaths
: Warnings involving assets will point to that asset instead of the build macro. (#2684)FlxTilemap
: HonorsFlxSprite.defaultAntialiasing
(#2688)
- 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
- apply
FlxKeys
: AddedSCROLL_LOCK
,NUMLOCK
,WINDOWS
,MENU
,BREAK
andNUMPADSLASH
keys (#2638)
The alpha was causing issues with CI due to haxelib issues. We're foregoing the alpha, since the new features are considiered "stable".
FlxDefines
prevent compile error when targeting lime 7 on non-sys targets (#2676)
FlxMouse
: Addedreleased
,releasedRight
andreleasedMiddle
(#2496)- Angles: Added various degree/radian specific versions of existing angle helpers (#2482)
FlxDirectionFlags
: Various helpersFlxVector
: AddedcopyTo
(#2550)FlxCollision
: AddedcalcRectEntry
andcalcRectExit
(#2480)FlxTilemap
: Overhaul to pathfinding (#2480)FlxPathfinder
: Allows customizable pathfinding algorithms for tilemapFlxPathSimplifier
: Replace findPath simplify args with a new enum- Expose previously private fields:
tileWidth
,tileHeight
,scaledTileWidth
,scaledTileHeight
,scaledWidth
, andscaledHeight
FlxBaseTilemap
: addedcalcRayEntry
andcalcRayExit
FlxPath
: various new featuresFlxPathDrawData
: addedmyFlxPath.debugDrawData
to allow custom colors and draw properties (#2480)FlxAxes
: addedx
andy
getters,NONE
value,toString
,fromString
andfromBools
methods (#2480, #2659)FlxTween
: addedShakeTween
andFlxTween.shake()
helper (#2549)WatchFrontEnd
: addedFlxG.watch.addFunction
(#2500)FlxPoint
: added binary operators+
,-
,+=
,-=
,*
, and*=
(#2557)FlxColor
: addedrgb
getter and setter (#2555)FlxSave
: addedmergeDataFrom
,mergeData
status
,isBound
andisEmpty
(#2566) (#2584)FlxAnimation
- addedloopPoint
to allow looping to a frame other than the starting frame (#2621)FlxSound
- addedpitch
to alter the playback speed (#2564)FlxSprite
- addedgetPixelAt
,getPixelAtScreen
,transformWorldToPixels
andtransformScreenToPixels
(#2640)FlxStringUtil
- addedtoTitleCase
andtoUnderscoreCase
(#2670)FlxAssets
- changed parameters tobuildFileReferences
(AffectsAssetPaths
) (#2575)- replaced
filterExtensions
arg withinclude
andexclude
args - changed
rename
arg to take the full filepath, can returnnull
to exclude
- replaced
FlxSprite
: FixedloadRotatedGraphic
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
- preventonOver
sound when releasing a button (#2657)
- Collision: preserve momentum in
FlxG.collide
(#2422) - Angles: All angle utils treat right as 0 (affects
FlxSwipe
andFlxPath
) (#2482) FlxAngle
: deprecated:getCartesianCoords
,getPolarCoords
,angleFromFacing
andFlxPoint.angleBetween
(#2482)FlxTilemap
: renamedray
torayStep
added newray
with noresolution
arg (#2480)FlxPath
: move toflixel.path.FlxPath
(#2480)FlxPoint/FlxVector
: moved allFlxVector
fields and methods intoFlxPoint
(#2557)FlxSave
: changed the default save name and path to unique values based on Project.xml metadata (#2566)FlxTilemap
: ReplaceduseScaleHack
with staticdefaultFramePadding
to fix tile tearing (#2581)FlxSprite
: various improvements.FlxGame
: removed misleadingzoom
arg from constructor (#2591)FlxMouseEventManager
: Changed from a static manager to an instance. UseFlxMouseEvent
for the default manager (#2540)
- Dropped support for haxe 3, use 4.0.5 or higher
FlxAnimationController
: addedgetAnimationList
,getNameList
,exists
andrename
(#2473)FlxRect
: addedgetRotatedBounds
(#2298)FlxObject
: addedgetRotatedBounds
(#2298)FlxSprite
: addedgetScreenBounds
(#2298)FlxSpriteUtil
: addedcameraWrap
andcameraBounds
(#2298)FlxCamera
: addedgetViewRect
andcontainsRect
(#2298)
- Fixed segmentation faults on Hashlink for linux (#2487)
FlxSpriteGroup
:kill
,revive
andrevive
call the respective function on members (#2423)
FlxCollision
: improvedpixelPerfectCheck
performance, now honors scale (#2298)FlxSprite
: improvedisOnScreen
accuracy (#2298)FlxCamera
: addedputWeak
call incontainsPoint
(#2298)FlxObject
:screenCenter
defaults toXY
rather thannull
(#2441)FlxState
: Clarify restrictions in state constructors (#2479)
- Added
FlxDirectionFlags
andFlxDirection
(#2303) FlxBitmapText
: added support for unicode combining diacritical marks (#2309)FlxTextFormat
: addedleading
(#2334)FlxAction
: addedaddAndroidKey()
(#2393)FlxVector
: addedsetPolarRadians()
andsetPolarDegrees()
(#2401)
FlxAssetPaths
: fixed paths for iOS (#2345)VarTween
: fixed an error ifcancel()
is called duringonUpdate
(#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
FlxSpriteUtil
: enableddrawRoundRectComplex()
for non-Flash targets (#2332)FlxTween
: allowedcancelTweensOf()
to cancel "grandchild" tweens (#2354)
- Compatibility with Haxe 4.2.x
FlxTween
: addedcancelTweensOf()
andcompleteTweensOf()
(#2273)FlxSound
: added anOnLoad
callback toloadStream()
(#2276)FlxState
: addedsubStateOpened
andsubStateClosed
signals (#2280)FlxG.cameras
: added aDefaultDrawTarget
argument toadd()
andsetDefaultDrawTarget()
(#2296)
FlxTween
: fixed an issue with settingstartDelay
after tween creation (#2262)FlxEmitter
: fixedmaxSize
not being set toQuantity
inmakeParticles()
(#2265)FlxBitmapFont
: fixed infinite loops caused by "farbling" in the Brave browser (#2300)
FlxG.plugins
: improved type safety forget()
andremove()
(#2292)FlxAtlasFrames
: improved animation support infromLibGdx()
(#2278)FlxBasic
: assign an incrementedID
for each created instance (#2266)FlxCamera
: deprecateddefaultCameras
in favor of default draw targets inFlxG.cameras
(#2296)
- improved rendering performance on low-end devices
FlxSplash
: addedmuted
(defaults totrue
on HTML5)FlxBaseKeyList
: addedNONE
(#2253)FlxKeyManager
: addedreleased
(#2253)FlxGamepad
:FlxText
: added support for removing partial ranges inremoveFormat()
(#2256)
FlxGamepad
: fixedpressed
not beingtrue
during the firstjustPressed
frame (#2253)FlxKeyManager
: fixedanyPressed([ANY])
not working (#2253)
- Fixed
Std.is()
deprecation warnings with Haxe 4.2
FlxGroup
: added support for specifyingcameras
(#2232)
FlxButton
: fixedmouseButtons
handling (#2246)FlxTilemap
: handle negative tile indices for allload
methods, not just CSV (#2250)FlxVirtualPad
: fixed graphic not showing up on HTML5OUYAID
: fixed button mappings (#2234)
FlxAnimation
: changedframeRate
to aFloat
(#2252)
- Compatibility with Haxe 4.0.0-rc.3
FlxAssetPaths
: added support for custom renaming (#2227)
FlxGraphicsShader
: fixed crashes on some old iOS devices (#2219)FlxG.android
:
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
- Compatibility with Haxe 4.0.0-rc.1
- Added a new
FlxAction
API /flixel.input.actions
(#1805) FlxGamepadManager
: addeddeviceConnected
anddeviceDisconnected
(#1805)FlxBitmapText
: addedclipRect
support (#2171)FlxTilemap
: added 47 tile autotiling (#2184)FlxG.signals
:FlxSave
: added support for local storage paths (#2202)FlxVector
: addedweak()
support and turned it into anabstract
(#2191)- Added blend mode support for
drawQuads()
rendering with OpenFL 8.8.0+ (#2199)
FlxFilterFrames
: fixed previousoffset
being ignored inapplyToSprite()
(#2176)FlxBitmapFont
: fixed background only being removed on Flash infromXNA()
(#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 whenupdateHitbox()
is called (#2205)
- Fixed compatibility with OpenFL 8.5.0
FlxSoundGroup
: fixedadd()
adding sounds twice
- Added support for Lime 7
FlxTween
:- added support for tweening sub-properties like
"scale.x"
withtween()
(#2152) - added a
FlxTweenType
enum abstract and deprecated the constants inFlxTween
- added support for tweening sub-properties like
FlxSpriteGroup
: addeddirectAlpha
(#2157)FlxDebugger
: added a transform interaction tool (#2159)
FlxBitmapText
: fixed clipping issues with text using borders (#2151)FlxAssetPaths
: fixed variables with invalid Haxe identifiers being generated (#1796)FlxSpriteUtil
: fixedspaceFromBounds
inspace()
not being respected (#1963)FlxSpriteGroup
: fixed sprites not showing up again after settingalpha
to0
(#1353)
FlxSpriteUtil
: added an argument allowing to use a positioning function inspace()
(#2154)FlxG.accelerometer
: enabled accelerometer support on HTML5
- Fixed compatibility with Haxe 4.0.0-preview.4
- Fixed an issue with code completion on the Flash target in VSCode
- 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
FlxStringUtil
: addedgetEnumName()
(95615382)FlxG.console
: addedregisterEnum()
(24905c4b)FlxMouse
: addedjustMoved
(#2087)FlxMouseEventManager
:
FlxDebugger
console: fixed enum completion on non-Flash targets (404c16b3)FlxMouseEventManager
:FlxAssetPaths
: fixedfilterExtensions
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 targetsFlxMath
: fixedroundDecimals()
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)
FlxG.keys
: added arrow keys, space and tab topreventDefaultKeys
on HTML5FlxSpriteGroup
: added acamera
setter override (#2146)
FlxTween
: addedcancelChain()
(#1988)FlxMatrix
: addedtransformX()
andtransformY()
(dcc66b3)FlxCamera
: addedcontainsPoint()
(#1964)FlxSubState
: addedopenCallback
(#2023)FlxSpriteGroup
:FlxSoundGroup
: addedpause()
andresume()
(#2043)FlxDebugger
interaction tool:FlxDebugger
console: added an "Entry Type" quick watch entry (d354352)FlxStringUtil
: addedgetHost()
(#1996)FlxPoint
: addedtoVector()
(#2061)FlxGamepad
: addedgetAnalogAxes()
(#2064)FlxMouse
: added getters forjustPressedTimeInTicks
(#2070)FlxEase
: addedlinear
/smooth
/smoother
functions (#2080)
FlxAnimation
: fixed reversed animations (#1998)FlxRandom
: fixedgetObject()
not respectingstartIndex
(#2009)FlxGroup
: fixedremove()
withSplice = true
not decreasinglength
(#2010)FlxStringUtil
: fixed an issue with decimals informatMoney()
(#2011)FlxMouseEventManager
:FlxPreloader
: fixed missing assets with full DCE (764a5a8)FlxG.cameras
: fixedreset()
not removing all cameras (#2016)FlxAnimationController
: fixedflipX
/Y
not being copied incopyFrom()
(#2027)haxelib run flixel
: fixed the working directory not being passed on (61f2c20)FlxDebugger
interaction tool:FlxG.html5
: fixedplatform
detecting iPhone and iPod as "Mac" (#2052)FlxTilemap
: fixed a missing bounds check ingetTileIndexByCoords()
(#2024)FlxAnalog
: fixed mouse input withoutFLX_NO_TOUCH
(#2067)flixel.input
: fixedFloat
being used for tick values (#2071)FlxCamera
: fixed object visibility forzoom < 1
(#2003)FlxEmitter
: fixed issues withlifespan == 0
(#2074)
FlxBitmapText
: allowed negativelineSpacing
values (#1984)FlxStringUtil
: madegetDomain()
more robust (#1993, #1996)FlxG.signals
: changedgameResized
to be dispatched after camera resize (#2012)FlxAtlasFrames
: allowed passing a parsedDescription
infromTexturePackerJson()
(#2021)FlxG.watch
: optimized expression watch entries (#2004)FlxDebugger
console:FlxBasePreloader
: improved the design of the sitelock failure notice (#1994)FlxFlicker
: madestop()
public (#2084)FlxAnalog
: several fixes and improvements (#2073)
- fixed rendering with Haxe 3.4.0 and OpenFL Next
FlxG.html5
: addedplatform
andonMobile
(#1897)FlxText
: added support for multi-character markers inapplyMarkup()
(#1908)FlxG
: addedonMobile
(#1904)FlxPreloader
: added HTML5 support (#1846)FlxTweenManager
andFlxTimerManager
:FlxPath
:FlxG.cameras
: addedcameraAdded
,cameraRemoved
andcameraResized
signals (edf93b5)FlxDebugger
: added a tools panel to interact with objects (#1862)ConsoleCommands
: added astep()
command (#1910)FlxG.console
: addedstepAfterCommand
(#1910)FlxSound
:FlxMouse
: addedregisterSimpleNativeCursorData()
(73b0ff2)FlxRandom
: addedshuffle()
(#1947)WatchEntry
:FlxAnimation
: added support for changingframes
(#1967)FlxObject
: addeddebugBoundingBoxColorSolid
, -NotSolid
and -Partial
(#1847)FlxTilemap
:- Added an HTML5 template to center games horizontally (#1918)
- Added support for
haxelib run flixel
as an alias forhaxelib run flixel-tools
(#1950)
FlxBitmapText
: fixedalpha
not working (#1877)FlxEmitter
: fixed properties not being ignored if their.active
is set tofalse
(#1903)FlxCamera
:FlxTilemap
: fixed buffers not being resized on camera changes (#1801)FlxSpriteGroup
:flixel.input.gamepad.mappings
: fixed some mappings for digitized stick movements (c04ce96)FlxAtlasFrames
: fixed offset parsing for whitespace-stripped atlases infromLibGdx
(#1923)FlxKeyboard
: fixed someFlxG.debugger.toggleKeys
andFlxG.vcr.cancelKeys
not working on native (470c8e8)FlxMouse
: fixedFlxButton
presses during VCR playback (#1729)FlxSprite
:FlxCollision
: fixed an animation-related crash withFlxG.renderBlit
(#1928)FlxTimerManager
: fixed issues related to adding / removing timers inonComplete
(#1954)WatchEntry
: fixed variables being turned intoString
on Neko (#1911)FlxVector
: fixednormalize()
returning(1,0)
for(0,0)
(#1959)FlxFrame
: fixed inconsistent sorting across platforms (#1926)FlxSubState
: fixedclose()
if same instance is used in two different states (#1971)CompletionHandler
: fixed completion mid-text (#1798)
flixel.util.helpers
: changed the default value ofactive
totrue
(d863892)FlxGitSHA
: optimized for compiler completion (f5dca1d)FlxRect
: added an optionalresult
argument tointersection()
(c52b534)FlxG.debugger
: addedF2
totoggleKeys
(f3f029c)FlxRandom
: deprecatedshuffleArray()
in favor ofshuffle()
(#1947)FlxEmitter
:emitParticle()
now returns the particle (#1957)FlxG.bitmap
:FlxFramesCollection
: frame sizes are now checked and trimmed (#1966)
- fixed the check for Lime <= 2.9.1
FlxG.vcr
: added anOpenSaveDialog
argument tostopRecording()
(#1726)FlxSound
:FlxMouse:
addedenabled
FlxGamepadInputID
: added IDs for analog stick directions (#1746)FlxG.watch
: addedaddExpression()
andremoveExpression()
(#1790)Console
:- added
watch
andwatchExpression
commands (#1790) - added
Reflect
,Std
,StringTools
,Sys
,Type
andFlxTween
to default classes
- added
CompletionHandler
: added locals declared withvar
to completionWatchEntry
:- added a remove button
- added
Float
rounding (toFlxG.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
: addedisNullOrEmpty()
FlxDefines
: added inverted versions of allFLX_NO
-defines (e.g.FLX_DEBUG
forFLX_NO_DEBUG
)FlxTileFrames
: addedspacing
andborder
arguments tocombineTileSets()
andcombineTileFrames()
(#1807)FlxBitmapDataUtil
: addedcopyBorderPixels()
FlxGame
:GameWidth
andGameHeight
innew()
now use the window size if set to 0 (#1811)FlxPoint
: addedscale()
(#1811)FlxBar
: addednumDivisions
FlxBaseTilemap
: addedloadMapFromGraphic()
(#1525)FlxAnimation
: added the ability to setpaused
directly (#1538)FlxTilemap
: addedantialiasing
(#1850)- Added GLSL
shader
support forFlxSprite
,FlxTilemap
,FlxBar
andFlxBitmapText
(#1848) FlxGraphic
: added an optionalCache
argument tofromFrame()
FlxG.debugger
: addedvisibilityChanged
(#1865)
FlxText
: [Flash] fixed blurry lines on multiline texts withFlxTextAlign.CENTER
(#1728)FlxSound
: fixedfadeOut()
andfadeIn()
not canceling the previous tween (#1834)FlxGamepad:
[Flash] fixed potential range errors when checking axis valuesCompletionListEntry
: fixed text width exceeding list widthFlxGame
: [HTML5] fixedticks
holding the current date's timestamp instead of ms since game startFlxCamera
: fixed background scaling forzoom < 1
on native targets (#1588)FlxBaseTilemap
: [Neko,HTML5] fixed invalid array access inoverlapsPoint()
(#1835)FlxObject
: fixedoverlapsPoint()
at x / y = 0 (#1818)FlxReplay
: fixed simultaneous recording of key and mouse input (#1739)FlxVelocity
: fixedaccelerateFromAngle()
settingmaxVelocity
to negative values (#1833)- Fixed compilation with
hscriptPos
defined (#1840) FlxDrawTilesItem
: fixednumTiles
value with color offsetsFlxBitmapFont
: fixed a crash related to incorrect UTF-8 handling (#1857)FlxAtlas
: fixed a crash when the constructor is called withpowerOfTwo == true
(#1858)FlxTween
: fixed nested tween chains (#1871)FlxTypedGroup
: fixed recursion inforEachOfType()
(#1876)Tracker
: [Neko] fixed a crash insetVisible()
(#1879)- Fixed some flixel-internal fields being accessible when they shouldn't be (#1849)
Console
: removedresetState
,switchState
andresetGame
commandsFlxArrayUtil
: optimizedflatten2DArray()
FlxSpriteUtil
: changedalphaMask()
arguments fromDynamic
toFlxGraphicAsset
(#1806)FlxG.signals
: changedpreUpdate
to be dispatched afterFlxG.elapsed
is updated (#1836)FlxG.debugger
: changeddrawDebugChanged
to be dispatched afterdrawDebug
is updatedFlxDefines
: added a check for incompatible OpenFL / Lime versions (should be < 4.0.0 / < 3.0.0 respectively)
FlxDebugger
: [HTML5] fixed version text color (#1727)FlxFlicker
/LabelValuePair
: fixed DCE issues (#1757)FlxMouse
: fixeduseSystemCursor = true
not always working with native cursor APIFlxDebugger
mouse handling fixes (#1775):- fixed
FlxMouse
'svisible
anduseSystemCursor
not being restored properly - fixed cursor disappearing after losing Console focus with native cursor API
- fixed mouse focus area of windows being too big
- fixed
FlxAnimationController
: fixedfinishCallback
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
- fixed formatting for
- Debugger Stats window: fixed paused time being taken into account for average FPS
- Changed
static inline
vars to enums: (#998)FlxCamera
follow stylesFlxCamera
shake modesFlxText
border stylesFlxTilemap
auto-tiling optionsFlxBar
fill directionsFlxG.html5
browser types
- Moved
FlxMath
,FlxPoint
,FlxVector
,FlxRect
,FlxAngle
,FlxVelocity
andFlxRandom
toflixel.math
- Moved "typed" classes: (#1100)
FlxTypedGroup
intoFlxGroup.hx
FlxTypedSpriteGroup
intoFlxSpriteGroup.hx
FlxTypedEmitter
intoFlxEmitter.hx
FlxTypedButton
intoFlxButton.hx
- The signature of
update()
functions was changed toupdate(elapsed:Float)
. Theelapsed
argument should be used instead ofFlxG.elapsed
. (#1188)
- Added
flixel.FlxStrip
which supports rendering viadrawTriangles()
- Added an experimental rendering method using
drawTriangles()
(enabled by definingFLX_RENDER_TRIANGLE
, requiresFlxG.renderTile
to be true). - The tile renderer now uses
Tilesheet.TILE_RECT
instead ofaddTileRect()
- 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)
- added
pixelPerfectRender
as a global setting for sprites and tilemaps (#1060) pixelPerfectRender
now defaults tofalse
withFlxG.renderTile
(#1065)bounds
->minScrollX
,maxScrollX
,minScrollY
andmaxScrollY
(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()
: fixedFadeIn == true
not working in a fade out callback (#1666)follow()
: removed theOffset
argument (#1056)
debugger
: fixed a crash when callingaddTrackerProfile()
beforetrack()
signals
:- split
gameReset
into pre/post signals - added
preStateCreate
(#1557)
- split
android
:preventDefaultBackAction
has been replaced bypreventDefaultKeys
inputs
: addedresetOnStateSwitch
- added
FlxG.addPostProcess()
/removePostProcess()
- added
resizeWindow()
- Added
filtersEnabled
andsetFilters()
toFlxCamera
andFlxGame
(#1635) version
now includes the commit SHA via a build macro
- added
getPosition()
andgetHitbox()
- split some of
separate()
's functionality intoupdateTouchingFlags()
, allowingtouching
to be used without any separate calls (#1555) - added
path
(#1712)
- added
graphicLoaded()
getScreenXY()
->getScreenPosition()
- removed the
NewSprite
argument fromclone()
- added
clipRect
frames
->numFrames
- added
frames
which reflects the sprite's current frames collection - removed
loadGraphicFromTexture()
andloadRotatedGraphicFromTexture()
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 longerinline
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. Setdirty
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)
onFocus()
andonFocusLost()
no longer requireFlxG.autoPause
to be false- added
switchTo()
(#1676)
FlxAnimation
:- added
reversed
var which allows you to play animation backwards - second argument of
play()
method isReversed
now - added
flipX
andflipY
(#1670)
- added
FlxAnimationController
:curAnim
does also return animations that have finished now- removed
get()
callback
: fixed oldframeIndex
value being passed instead of the current oneadd()
now makes a copy of theFrames
array before callingsplice()
on it- fixed
finished
not being true during the last animation frame in thecallback
- added
Reversed
argument inplay()
method, which allows you to set animation's playback direction
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) andSQUARE
(#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
andangularAcceleration
(#1246)
FlxParticle
: (#1174)maxLifespan
->lifespan
,lifespan
->age
, percent indicates(age / lifespan)
age
counts up (as opposed tolifespan
, which counted down)- range properties (
velocityRange
,alphaRange
) which determine particle behavior after launch - "active" flags (
alphaRange.active
,velocityRange.active
, etc) whichFlxEmitter
uses to control particle behavior
FlxGraphic
:- renamed from
CachedGraphics
and moved toflixel.graphics
- added
defaultPersist
(#1241) - added
fromAssetKey()
,fromClass()
andfromBitmapData()
bitmap
is now settable
- renamed from
FlxAtlas
:- moved to
flixel.graphics.atlas
- added
addNodeWithSpacings()
- added
minWidth
,maxWidth
,minHeight
andmaxHeight
(the size starts atmin
and grows up untilmax
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)
- moved to
FlxNode
:- moved to
flixel.graphics.atlas
- added
getTileFrames()
andgetImageFrame()
- moved to
- 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 (likeSparrowData
andTexturePackerData
). It contains various static methods for parsing atlas files - added
FlxFilterFrames
frames collection instead ofFlxSpriteFilter
(see filters demo)
- added
- Rewrote
PxBitmapFont
and renamed it toFlxBitmapFont
. 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()
andpaintFlipped()
methods instead. This solution requires much less memory, but will be a bit slower. - added
flipX
andflipY
(#1591)
- doesn't store the frame's bitmapatas anymore, so
FlxTypedGroup
:FlxTypedSpriteGroup
: addediterator()
FlxSwipe
:duration
now uses seconds instead of milliseconds (#1272)FlxMouse
andFlxTouch
now extend a new common base classFlxPointer
instead ofFlxPoint
(#1099)- adds
overlaps()
toFlxMouse
- adds
FlxGamepadManager
:- better handling of disconnecting and reconnecting gamepads.
getByID()
can now returnnull
. anyButton()
now has astate
argumentglobalDeadZone
can now be 0globalDeadZone
now overshadows instead of overriding the gamepad's deadzone values
- better handling of disconnecting and reconnecting gamepads.
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
andname
- 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
andanalog
- 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 astate
argument- added support for WiiMote (#1563) and PS Vita (#1714) controllers
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
FlxKey
s instead of Array of Strings (string names are still supported) - removed
FlxKey.NUMPADSLASH
(SLASH
has the same keycode)
- added
FlxMouseEventManager
:
FlxAngle
:FlxMath
:bound()
andinBounds()
now acceptnull
as values, meaning "unbounded in that direction" (#1070)wrapValue()
->wrap()
, replaced theamount
argument with a lower bound- changed
MIN_VALUE
andMAX_VALUE
toMIN_VALUE_FLOAT
andMAX_VALUE_FLOAT
, addedMAX_VALUE_INT
(#1148) - added
sinh()
(#1309) - added
fastSin()
andfastCos()
(#1534) - optimized
isEven()
andisOdd()
- added
remapToRange()
(#1633) getDistance()
->FlxPoint#distanceTo()
(#1716)
FlxPoint
:inFlxRect()
->inRect
FlxRandom
:FlxRandom
functions are now member functions, callFlxG.random
instead ofFlxRandom
(#1201)- exposed
currentSeed
as an external representation ofinternalSeed
(#1138) - removed
intRanged()
andfloatRanged()
,int()
andfloat()
now provide optional ranges (#1138) - removed
weightedGetObject()
,getObject()
now has an optionalweights
parameter (#1148) - removed
colorExt()
, try usingFlxColor
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()
andfloor()
containsFlxPoint()
->containsPoint()
- added
FlxVelocity
:accelerateTowards*()
-functions now only take a singlemaxSpeed
argument (instead ofx
andy
)
FlxAssets
:cacheSounds()
->FlxG.sound.cacheAll()
(#1097)- OpenFL live asset reloading is now supported (native targets)
FlxSound
Console
:- refactored the console to be powered by hscript (#1637)
- added auto-completion
- fixed focus on native targets
BaseScaleMode
: addedhorizontalAlign
andverticalAlign
RatioScaleMode#new()
: added afillScreen
option- The
FlxCamera
sprite is now scaled (instead ofFlxGame
)
- Rewrote
FlxBitmapTextField
and renamed it toFlxBitmapText
FlxText
:- added an
abstract
enum for alignment (text.alignment = CENTER;
is now possible) font
now supports font assets not embedded viaopenfl.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 intoset_font()
- added
applyMarkup()
(#1229) - fixed issues with
borderStyle
andFlxTextFormat
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
andheight
) 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()
resettingalignment
(#1629)
- added an
- Moved
FlxTextField
to flixel-addons
FlxBaseTilemap
: addedsetRect()
method which allows you to set a rectangular region of tiles to the provided indexFlxTile
: addedframe
variable which holds tile's "graphic"FlxTileblock
:- added
setTile()
andtileSprite
(#1300) - added
loadFrames()
method which allows you to use frames collection as a source of graphic
- added
FlxTilemap
:- separated rendering and logic, adding
FlxBaseTilemap
(#1101) - added
getTileIndexByCoords()
andgetTileCoordsByIndex()
- fixed a bug in
overlapsAt()
loadMap()
now treats tile indices with negative values in the map data as 0 (#1166)- added
blend
,alpha
andcolor
- added
frames
property, so you can change tilemap's graphic without reloading map loadMap()
acceptsFlxGraphic
,String
,FlxTileFrames
orBitmapData
asTileGraphic
nowloadMap()
has been split intoloadMapFromCSV()
andloadMapFromArray()
(#1292)- added
loadMapFrom2DArray()
(#1292) - added
offset
property (#1444) allowCollisions
now sets theallowCollisions
property of each tile- fixed
ray()
not detecting a collision with perfectly diagonal start and end points (#1617) findPath()
: replacedWideDiagonal
argument withDiagonalPolicy
(#1659)
- separated rendering and logic, adding
FlxTween
complete
callback parameter in options is now calledonComplete
. Its type,CompleteCallback
, is now calledTweenCallback
. (#1273)- added
onStart
andonUpdate
callback parameters in options (#1273) - fixed
active = false;
not doing anything duringonComplete()
ofLOOPING
orPINGPONG
tweens - angle tween sets sprite's angle on start now
- added
then()
andwait()
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
- the original
FlxAnalog
andFlxVirtualPad
now have their own atlas to reduce draw callsFlxTypedButton
:- now implements
IFlxInput
, addingpressed
,justPressed
,released
andjustReleased
- now uses animations for statuses instead of setting
frameIndex
directly for more flexibility (removesallowHighlightOnMobile
, addsstatusAnimations
) - disabling the highlight frame is now tied to
#if FLX_NO_MOUSE
instead of#if mobile
labelAlphas[FlxButton.HIGHLIGHT]
is now 1 forFLX_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 tonew()
isnull
- added
stampOnAtlas()
for draw call optimization
- now implements
- Added
FlxSpriteButton
FlxArrayUtil
:- removed
indexOf()
- moved randomness-related to
FlxRandom
(#1138)
- removed
FlxBitmapDataUtil
:- renamed from
FlxBitmapUtil
(#1118) - added
replaceColor()
(used byFlxSprite#replaceColor()
) - added
addSpacing()
- added
generateRotations()
- renamed from
FlxColor
: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 fromstart()
, now the path has to be assigned toFlxObject#path
(#1712)
- the original
FlxPool
:- improved pooling performance (#1189)
FlxSignal
:- fixed a bug that occurred when calling
remove()
during a dispatch (#1420)
- fixed a bug that occurred when calling
FlxSpriteUtil
:drawLine()
: default settings forlineStyle
are now thickness 1 and color whitefadeIn()
andfadeOut()
now tweenalpha
instead ofcolor
- added
drawCurve()
(#1263) - removed
FillStyle
, the same functionality is now covered byFillColor
- moved
screenCenter()
toFlxObject
and changed the the arguments from two booleans to theFlxAxes
enum (#1541)
FlxTimer
:complete
->onComplete
(#1275)active
is now only true when in progress
- 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"