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"
- Fix compilation with OpenFL 3.5 / Lime 2.8
- Fix compilation with OpenFL next
FlxAssets.getFileReferences()
:
- Fix HTML5 compilation with OpenFL 3.1.1 / Lime 2.4.5
- HTML5 builds no longer default to using openfl-bitfive over OpenFL's backend
FlxTilemap
:FlxTextField
: fixed a crash when calling the constructor withText == null
FlxGamepadManager
: fixedlastActive
only updating when a new gamepad connectsFlxText
: fixed the default font not working on Android due to an OpenFL bug (#1399)FlxVector
:FlxTimer
: timers with a time of 0 can now be startedFlxSignal
: fixedaddOnce()
not working on neko (#1223)FlxSave
: fixeddata
still having the deleted properties aftererase()
(#1302)FlxPool
: fixed a bug with point / rect pooling that could lead to them being recycled when they shouldn't be
- Use lime legacy with OpenFL 3+
- Compatibility fix for Haxe 3.2.0 (recursive @:generic function)
- Compatibility fix for OpenFL 2.1.6
- FlxTilemap:
- fixed pixelPerfectRender not being respected with FLX_RENDER_TILE
- fixed a crash when trying to create a single-column tilemap
- FlxCamera: fixed defaultCameras not being reset on state switches
- FlxPoint#putWeak(): fixed an issue which could lead to a single point being allocated more than once when weak() is used
- FlxVector: fixed radiansBetween() / degreesBetween()
- FlxTypedSpriteGroup: fixed update() order leading to collision issues with members
- FlxTypedEmitter: fixed type parameter not being respected (T was always FlxSprite)
- FlxAssets#getFileReferences(): fixed the filterExtensions parameter
- FlxBitmapTextField:
- fixed issue with width increasing when the text is updated
- fixed text disappearing after state switches on HTML5
- FlxAnalog: changed the default value for scrollFactor to (0, 0) and for moves to false
- FlxGamepad:
- fixed a bug that would prevent buttons from being updated
- anyPressed() now also works when the button status is justPressed
- FlxTween: fixed a bug when tweening the same field with several tweens + startDelay
- FlxSubState:
- fixed calling close() within create()
- fixed openSubState() not working when close() is called afterwards on the current substate on the same frame
- Compatibility with OpenFL 2.0.0
- FlxSpriteFilter: fixed graphic being destroyed when not used elsewhere
- FlxTileblock: fixed graphic not showing up
- FlxBar: fixed a crash
- TexturePackerData: fixed a crash when destroy() is called more than once
- FlxSprite: fixes for drawFrame() and stamp()
- FlxVelocity and FlxAngle: removed arbitrary limitation of some parameters being of type Int (now Float)
- FlxTypedEmitter: added a set() to Bounds
- Updated the Xbox 360 button IDs to work with OpenFL 1.4.0
- FlxBitmapTextField: fixed graphic "corrupting" after state switches
- Added a bitmapLog window to the debugger to view BitmapData, used via FlxG.bitmapLog
- Added a way to view the graphics cache via FlxG.bitmapLog.viewCache() or by typing "viewCache" / "vc" into the console
- CachedGraphics: destroyOnNoUse is now true by default
- FlxBitmapUtil: added getMemorySize()
- FlxStringUtil: added formatBytes()
- FlxTimer: fixed a bug where a timer could be added to the TimerManager more than once
- FlxTilemap.ray() consistency fix
- FlxTextField: fix initial height being too small
- FlxAnimationController: fixed frameIndex not being reset after a graphic is loaded
- FlxKeyboard: added FlxKey.PRINTSCREEN for native targets
- Allowed changing the HTML5-backend (before including flixel:
<set name="html5-backend" value="new-backend">
) - FlxSprite: optimization for less BitmapData creation of simple sprites with blitting. Might require an additional dirty = true; when manipulating the BitmapData directly.
- FlxCollision.pixelPerfectCheck() now works with bitfive
- FlxKeyboard: fixed function keys being offset by 1 on cpp (F2-F13)
- FlxTilemap: fixed possible crash during collision checks
- FlxG.sound.play(): fixed volume parameter not working
- Added flash gamepad support. This either requires a swf-player-version of 11.8 to be set or FLX_NO_GAMEPAD to be defined.
- FlxGamepad.getAxis() has been split into getXAxis() and getYAxis() for consistency across targets
- FlxGamepad.dpadUp / Down / Left / Right don't work in flash, use getButton() in conjunction with the IDs in the button ID classes instead
- Added "tracker" window to the debugger which creates a Watch window with the most important properties of an object
- Use FlxG.debugger.track(Object); to create a new tracker window
- Use FlxG.debugger.addTrackerProfile() to add a profile for classes don't have one yet or override existing ones
- Use the "track [object]" command to open a tracker window from the console
- FlxCamera:
- Added static defaultCameras array which is used by FlxBasics when their cameras array has not been set - previously the use of FlxG.cameras.list / all existing cameras was hardcoded
- Fixed a bug where following a target would prevent you from setting the coordinates of the camera
- Added pooling for FlxPoint, FlxVector, and FlxRect. Usage: var point = FlxPoint.get(); /* do stuff with point */ point.put(); // recycle point. FlxPoint.weak() should be used instead of get() when passing points into flixel functions, that way they'll be recycled automatically.
- Debugger windows:
- Fixed dragging of overlapping windows
- Fixed the visibility of windows on native targets (now saving correctly)
- Fixed resizing when moving the mouse to the left / above the window
- FlxPath: fixed a bug with drawDebug()
- FlxG:
- fullscreen: fixed offset in flash
- openURL(): now adds "http://" to the URL if necessary
- Added maxElapsed
- Fixed some variables not being reset in resetGame()
- added FlxG.accelerometer for mobile targets
- FlxSound:
- Added loadByteArray()
- Now has a read-only variable time
- Allow sound caching on all targets instead of only on Android
- Added FlxG.sound.soundTrayEnabled to allow dis- and enabling the tray at runtime
- survive -> persist
- MouseEventManager:
- Improved handling of visible / exists
- Now works on FlxObjects
- addSprite() -> add()
- FlxPoint:
- Added floor() and ceil()
- Added add() and addPoint() (removed add() from FlxVector)
- Added subtract() and subtractPoint() (removed substract() from FlxVector)
- Changed the default html5 backend to openfl-bitfive
- Middle and right mouse events are now supported
- Sounds are now supported
- FlxObject: replaced forceComplexRender by pixelPerfectRender which rounds coordinates by default (if true) for drawing (also on cpp targets, making it consistent with flash)
- FlxText:
- Added shadowOffset
- Fixed the widthInc and heightInc of addFilter() which did not work at all previously
- Separated visible and physical width by adding fieldWidth to fix a bug
- Added autoSize that makes sure the entire text is displayed if true with wordWrap = false. Setting fieldWidth to 0 in the constructor is now allowed and activates this behaviour.
- Fixed variation in height of empty texts
- FlxSpriteUtil: added bound()
- FlxSpriteGroup:
- Added FlxTypedSpriteGroup, which can be used in the same way as FlxTypedGroup, but its type parameter is T:FlxSprite
- Setting cameras will now set cameras on its members, add()-ing a sprite will synchronize the values
- Abstracted rendering into FLX_RENDER_TILE and FLX_RENDER_BLIT conditionals as opposed to being hardcoded based on the target
- FlxTween:
- num(): added an optional tweenFunction parameter which can be used for increased performance (as MultiVarTween and SingleVarTween are fairly slow, using Reflection)
- singleVar() and multiVar() have been replaced by tween()
- Removed SfxFader and Fader
- FlxKeyboard:
- Implemented a workaround for function and numpad keys not working on native targets
- Added FlxKey.NUMPADMULTIPLY / "NUMPADMULTIPLY"
- Added firstPressed(), firstJustPressed() and firstJustReleased()
- Added FlxCallbackPoint, a FlxPoint that calls a function when x, y or both are changed.
- FlxTilemap:
- Replaced scaleX and scaleY by a scale FlxPoint
- Removed rayHit(), ray() provides the same functionality
- Added FlxDestroyUtil (FlxG.safeDestroy() -> FlxDestroyUtil.destroy())
- Debugger stats window: added a button to expand the window and show two more graphs (draw and update time)
- Added buildFileReferences() macro to FlxAssets.hx (auto-completion for asset string paths)
- FlxTilemap.computePathDistance() is now public and has a new StopOnEnd parameter
- Added FlxColor.MAGENTA
- Added FlxMouse.setGlobalScreenPositionUnsafe()
- FlxTypedButton:
- Fixed label.visible = false; not working
- Fixed a one-frame-delay between setting the label's position and it taking effect
- Fixed label scrollFactor being out of sync before the first update()
- FlxButton: Added a text property as a shortcut for label.text
- FlxSprite:
- Added support for more texture packer formats: LibGDXData, SparrowData, TexturePackerXMLData
- Fixed a null error crash in FlxAtlas on cpp targets with haxe 3.1.0+
- setOriginToCenter() -> centerOrigin()
- Fixed a "jittering"-issue between simple and complex render sprites due to rounding
- Removed flipped as well as the "Reverse" param from loadGraphic() and loadGraphicFromTexture()
- Added flipX, flipY and setFacingFlip() - graphics can now be flipped vertically as well
- Fixed a bug with flipped graphics + origin on FLX_RENDER_TILE targets
- FlxPreloader:
- Spit up FlxPreloader into FlxPreloader and FlxPreloaderBase to make it easier to extend
- Small fix that should prevent it from getting stuck
- Added siteLockURLIndex to control which URL in allowedURLs is used when the site-lock triggers
- allowedURLs now works with URLs that don't start with "http://"
- Fixed camera shifting after resizing with StageSizeScaleMode
- Added flixel.util.FlxSignal and FlxG.signals
- FlxAnimationController:
- Added append(), appendByNames(), appendByStringIndices(), appendByIndices() and appendByPrefix()
- addByStringIndicies() -> addByStringIndices()
- addByIndicies() -> addByIndices()
- Fixed a bug with callback firing every time play() was called instead of only when the frame changes
- FlxTypedGroup: added forEachOfType() iterator
- FlxGamepad:
- Added anyPressed(), anyJustPressed() and anyJustReleased()
- Added PS4ButtonID
- Traces are not being redirected to the debugger log window anymore by default
- Fixed mouse cursor scale at initial camera zoom levels different from 1
- FlxState: active, visible and exists are now respected
- FlxVector: substractNew() -> subtractNew()
- FlxGradient: fixed a memory leak in the overlayGradientOn()-functions
- FlxTimer and FlxPath:
- paused -> active
- abort() -> cancel()
- removed pooling due to potential issues
- start() -> new FlxTimer() / FlxPath()
- run() -> start()
- FlxTimer and FlxTween: removed userData
- Removed the allow-shaders="false" attribute from the window tag in the include.xml, as it causes problems (white screen) with lime 0.9.5 on iOS
- FlxTypedButton:
- add onUp event listener again for actions that need to be user-initiated, like ExternalInterface.call()
- fix buttons not working when FLX_NO_TOUCH is defined
- FlxSprite
- small optimization for set_pixels()
- fix for frame being null after loadGraphic() in some cases
- FlxRandom: fix inaccurate results in weightedPick()
- Added PixelPerfectScaleMode (scales the game to the highest integer factor possible while maintaining the aspect ratio)
- FlxTween
- backward is now a public, read-only property
- renamed delay to startDelay
- added loopDelay that controls the delay between loop executions with LOOPING and PINGPONG
- Added easier to use FlxTween.tween() function, which automatically determines whether to use single VarTween or MultiVarTween based on the number of Values being tweened
- Added some basic unit tests
- FlxCamera: removed followAdjust(), the followLead point should be set directly
- FlxSpriteUtil.screenWrap(): prevent sprite from ever being offscreen
- FlxSprite:
- fixed crash on cpp with loadRotatedGraphic() on state switches
- fixed "jittering" in certain cases with y velocity in simple render on flash (for example when standing on a platform in a platformer)
- Moved FlxTilemap-functions arrayToCSV(), bitmapToCSV() and imageToCSV() to FlxStringUtil
- FlxMath.computeVelocity() -> FlxVelocity.computeVelocity()
- FlxState.setSubState() -> FlxState.openSubState()
- Added FlxStringUtil.getDebugString()
- Improvements to FlxSystemButton
- Window: add optional close button
- Exposed complete callback in FlxTimer, so now you can do: FlxTimer.start(...).complete = function(t) { };
- Fixed a bug with onFocus() not firing the first time on Android
- FlxTypedButton
- added allowSwiping flag
- added allowHighlightOnMobile flag
- Refactor of FlxRandom
- All functions are now deterministic and safe to use with replays
- Due to the use of a new algorithm for pseudo-random number generation (a linear congruential generator) and a new seed type (integer instead of float values), old replays will have unpredictable results
- FlxColorUtil.getRandomColor(), FlxArrayUtil.shuffle(), and FlxArrayUtil.getRandom() have been moved to FlxRandom.color(), FlxRandom.shuffleArray(), and FlxRandom.getObject(), respectively. The old functions are still in place but are marked as deprecated.
- weightedPick(), weightedGetObject() and colorExt() have been added
- Replays are now fully deterministic, whether replaying the whole game or just a single state.
- New FLX_NO_SOUND_SYSTEM conditional
- FlxTrailArea:
- can now be resized with setSize()
- default delay is now 2
- removed smoothing, use antialising instead
- is now compatible with animated sprites / sprites that have a spritesheet
- Moved FlxSlider, FlxTrail and FlxTrailArea to flixel-addons
- FlxMisc has been removed, openURL() can now be found in FlxG. Added Target param to openURL().
- FlxCamera:
- getContainerSprite() has been removed, as well as the underscore in some public variables ("_flashSprite")
- BUG: fixed alpha being initialized with 0 instead of 1
- BUG: fixed FlxSprites not taking camera.alpha into account on cpp targets
- FlxSpriteGroup: Added forEach(), forEachAlive(), forEachDead() and forEachExists()
- FlxSpriteUtil:
- new drawTriangle() and drawPolygon(), fadeIn() and fadeOut() functions
- more control for the drawing functions via FillStyle and DrawStyle
- added convenient default values for drawCircle()
- allow FlxObjects in screenWrap() and screenCenter()
- now the functions return the sprite / object to allow chaining
- BUG: fixed null error in alphaMaskFlxSprite()
- FlxTypedButton refactor
- Callbacks are now set via the FlxButtonEvent objects, for example button.onDown.callback = someFunction;
- The type of callback has been changed from Dynamic to Void->Void to avoid Reflection. This means you need to bind custom parameters to your callback function like so: callback = someFunction.bind(1); (more info)
- new labelAlphas and labelOffsets arrays for more control
- the highlight frame is now disabled by default on mobile
- "swiping" is now possible (entering the button area while the input is pressed to press the button)
- FlxTypedEmitter and FlxSound: Added setPosition() methods
- FlxSlider: New setVariable flag, improvements to inner update logic
- FlxSprite:
- pixelsOverlapPoint() has been removed
- setGraphicDimensions() -> setGraphicSize(), removed the UpdateHitbox flag
- added getGraphicsMidpoint()
- bakedRotation -> bakedRotationAngle
- loadfromSprite() -> loadGraphicFromSprite()
- loadImageFromTexture() -> loadGraphicFromTexture()
- loadRotatedImageFromTexture() -> loadRotatedGraphicFromTexture()
- setColorTransformation() -> setColorTransform()
- Optimized input checking when using FlxG.keys (aka FlxKeyShortcuts)
- FlxTypedGroup:
- autoReviveMembers flag has been removed
- Revive param has been added to recycle()
- Fixed a bug with callAll()'s Args parameter which would get lost in recursive mode
- FlxRect, FlxPoint and FlxBasic and FlxObject now have toString() functions used for traces and the flixel debugger
- The focus lost screen and the sound tray now react to window resizes
- BUG: Fixed numpad minus not working as a default volume down key
- FlxStringUtil:
- added sameClassName()
- added getDomain()
- The stats window of the debugger has been refactored, now has fancy FPS and memory graphs
- FlxGame.focusLostFramerate added
- BUG: Fixed flixel cursor reappearing after regaining focus
- Android sound caching improvement
- Fixes for OUYA gamepad combatibility (fixed some button IDs in OUYAButtonID)
- Fix for a bug in the standalone flash player that would fire onFocus / onFocusLost twice
- Prevent paused sounds from playing after regaining focus
- FlxText:
- BUG: Fix inaccurate text color when setting both color and alpha
- BUG: Fix incompatiblity of FlxText.borderStyle and FlxText.alpha
- BUG: Fixed changing color or alpha of a FlxText affecting its origin
- Internal optimizations for less BitmapData creations
- Added basic text formatting via FlxTextFormat, so different sections of the same FlxText can have different formatting. For this, addFormat(), removeFormat() and clearFormats() have been added.
- Added italic property (flash-only for now)
- Renamed framerates to clear up confusion:
- gameFramerate -> updateFramerate
- flashFramerate -> drawFramerate
- BUG: Fixed order of operations issue that was causing FlxSubStates to crash on close.
- BUG: Fixed a splash screen repeating bug when using default splash screen.
- Gamepad support improvements
- Improvements and optimizations to gamepad api, fixed Ouya compatibility!
- FlxGamepadManager: getActiveGamepadIDs(), getActiveGamepads(), getFirstActiveGamepadID(), getFirstActiveGamepad and anyInput() added
- FlxGamepad: firstPressedButtonID(), firstJustPressedButtonID() and firstJustReleasedButtonID() added
- Added PS3ButtonID and LogitechButtonID classes
- FlxG.gamepads.get() -> getByID()
- Ported scale modes from flixel for moneky (FlxG.scaleMode / flixel.system.scaleModes) and removed FlxG.autoResize
- Renamed FlxG.debugger.visualDebug to drawDebug
- FlxTween:
- optimizations
- AngleTween now accepts FlxSprite as a parameter
- Now possible to delay tweens via the TweenOptions typedef
- FlxEase: Added elastic easing functions
- Exposed the duration and the type of tweens so they can be changed after they have been started
- BUG: Fixed jittering movement of FlxObjects following a FlxPath
- Removed FlxG.paused, it was a container variable without functionality
- FlxRect:
- Added setSize()
- top / bottom / left / right can now be set
- FlxArrayUtil:
- added fastSplice()
- moved intFromString() to FlxStringUtil.toIntArray()
- moved floatFromString() to FlxStringUtil.toFloatArray()
- Moved flixel.system.input to flixel.input
- Moved interfaces into a new interfaces package
- BUG: Fixed crash when using traces on android
- Haxe 3.1.0 compatibility
- FlxG.keyboard has been merged with Flx.keys again. FlxG.keyboard.pressed(), justPressed() and justReleased() have been removed, anyPressed(), anyJustPressed() and anyJustReleased() should be used instead.
- Removed dynamic types and casting in some places
- FlxMouse refactor
- Removed show() and hide(), visible should be used instead
- load() should be used for loading a cursor graphic, which was previously possible via show()
- FLX_MOUSE_ADVANCED has been turned into FLX_NO_MOUSE_ADVANCED, which means the event listeners for middle and right mouse clicks are now available by default / opt-out
- FlxState.useMouse has been removed
- The mouse cursor is now by default visible on non-mobile targets
- FlxG.pixelPerfectOverlap() / FlxCollision.pixelPerfectCheck() has been heavily optimized to perform well on cpp targets, default AlphaTolerance is now 1
- FlxG.LIBRARY_MINOR_VERSION, LIBRARY_MAJOR_VERSION, LIBRARY_NAME and libraryName have been refactored into a FlxVersion object available via FlxG.VERSION
- FlxSound:
- Made fadeIn() and fadeOut() more intuitive to use
- Added pan property to allow non-proximity-based panning
- FlxAngle:
- added getCartesianCoords() and getPolarCoords()
- removed the Round parameter from getAngle()
- FlxVirtualPad now extends FlxSpriteGroups and uses enums for the action and dpad-button-styles
- Added collisionXDrag flag to FlxObject to allow turning off the default "move-with-horizontally-moving-platform"-behaviour
- FlxSoundUtil has been removed
- General improvements to the in-code documentation
- Added
<window allow-shaders="false" />
to the include.xml to boost performance (especially on mobile) - Added an option for looping to FlxG.sound.playMusic()
- BUG: Fix the last command of the console not working
- BUG: Fix setting a Boolean on cpp not working
- BUG: Added a workaround for onFocus() firing immediately on startup for cpp targets
- Code style change for keyword order, public/private first, see the styleguide for more info
- Added getByID() to FlxG.touches
- Added FlxG.swipes (contains all the FlxSwipe objects that are active this frame) to allow for better handling of touch inputs. A FlxSwipe has the following properties:
- startPosition
- endPosition
- distance
- angle
- duration
- All FlxPoints of FlxObject and FlxSprite are now (default, null) / read-only - this means you should now use .set(x, y) if you were previously new()-ing the point.
- Asset embedding has been optimized to only embed sound / graphic assets when they are needed, as opposed to always including all of them.
- Changed the way FlxTypedGroup.sort() works by adding flixel.util.FlxSort for increased performance
- BUG: fixed onFocus and onFocusLost not working on mobile
- Changed default volume from 0.5 to 1
- Removed experimental FLX_THREADING conditional
- Changes type of CHANGELOG and LICENSE files from .txt to .md - makes it more readable on github
- FlxSpriteGroup: Default scrollFactor is now (1, 1) and upon adding sprites, their scrollFactor is synchronized
- Now using the HaxeFlixel logo as an icon for the application by default again
- FlxAnimationController: Additional null checks to prevent errors with FlxSpriteFilter
- FlxG: addChildBelowMouse() and removeChild() added
- FlxG.debugger.removeButton() added
- Added toString() functions to FlxPoint and FlxRect
- Console: Refactor which includes removing some commands and making it more flexible
- FlxColorUtil: Now uses proper terminology (ARGB instead of the misleading RGBA)
- FlxSprite: setGraphicDimensions() and updateHitbox() helper functions for working with scale added
- FlxStringUtil: htmlFormat() and filterDigits() added
- FlxMath: Improvements to sign() and chanceRoll()
- FlxClickArea: Has been moved to flixel-addons
- FlxText: Internal TextField is now accessible via textField
- FlxTrailArea added, an alternative to FlxTrail which should be more performant
- FlxBitmapUtil.merge() added
- No changes to 3.0.2, just a fix for the faulty 3.0.2 haxelib release
- FlxTilemap: Region size checks added to fix a bug
- FlxSprite.setColorTransformation() added
- FlxAngle.getAngle(): Round parameter added
- FlxPreloader: Workaround for issue in Chrome, enabled by default again
- FlxCollision.pixelPerfectCheck(): Now correctly works with rotated sprites
- FlxSpriteUtil drawing functions: Support for RGBA colors, new lineStyle param
- MouseEventManager: Fix pixel-perfect checks for touchscreens
- FlxSpriteGroup: Get rid of motion variable (velocity etc) overrides to fix a bug with FlxPath, add width and height getters
- Basic HTML5 gamepad support (Chrome and Opera)
- FlxG.android added (supports the back and menu keys for now)
- FlxGame constructor: Added StartFullscreen param for desktop targets
- FlxTypedGroup: Added iterators / iterator(), forEach(), forEachAlive(), forEachDead(), forEachExists()
- FlxColorTween now accepts FlxSprite as a parameter and it will change its color automatically
- QuadPath doesn't generate control points anymore
- Fixes to gamepad API.
- Added tilemap scaling.
- FlxSpriteGroup has been reworked and now extends FlxSprite instead of FlxTypedGroup
- FlxCollisionType introduced
- FlxDebugger: UI improvements, now remembers visibility settings of the windows
- Compiler fix for Blackberry target.
- FlxAssets: Fonts are no longer inlined so they can be changed
- FlxMath: isDistanceWithin(), isDistanceToPointWithin(), isDistanceToMouseWithin() and isDistanceToTouchWithin() added
- FlxG.fullscreen now works on cpp targets
- FlxObject.inWorldBounds() added
- LICENSE.txt cleanup
- New Front End classes to better encapsulate FlxG functionality.
- Refactored the animation system.
- Better support for nested sprites via FlxSpriteGroup.
- Moved lots of stuff into utility classes to reduce clutter in core classes.
- Continued optimizations for cpp targets.
- Fix for FLX_MOUSE_ADVANCED (wouldn't compile earlier)
- FlxMath functions are Float-compatible. Thanks @Gama11
- Fix for negative object width and height. Thanks @Gama11
- Fix for FlxPath and FlxObject
- Added Frame parameter for FlxSprite's play(). Now you can start animation from specified Frame
- Added gotoAndPlay(), gotoAndStop(), pauseAnimation() and resumeAnimation() methods for FlxSprite
- Added frameRate property for FlxAnim
- Fixed camera scrollRect on html5 target
- Fixes for reflection which caused crashes
- Added tileScaleHack var for tilemaps and tileblocks. It should help with tilemap tearing problem
- Fixed FlxWindow dragging bug
- Fix null error bug with logging functions. Thanks @Gama11
- Projects now use .xml instead of .nmml. Thanks @Gama11
- Fixed facing for FlxSprite with TextureAtlas
- FlxTrail improvements from Andrei Regiani (now it supports origin and scaling)
- FlxSlider refactoring and fixes. Thanks @Gama11
- Fixed FlxTextField.setFormat() to load font correctly
- Fixed AntTaskManager. Thanks @Henry.T
- Blocked sounds for html5 target (until i'll make them work there)
- Fixed FlxU.formatTime to correctly display milliseconds. Thanks @jayrobin
- Big refactoring regarding FlxPoint, FlxRect, FlxU (now it splitted into FlxAngle, FlxArray, FlxColor, FlxMath, FlxMisc, FlxRandom and FlxVelocity classes). Huge thanks @Gama11
- Merged FlxMath, FlxColor and FlxVelocity plugins from FlixelPowerTools into utility classes from org.flixel.util package. Thanks @Gama11
- Fixed FlxTypedGroup atlas setter
- Fixed FlxBasic updateAtlasInfo() method
- Added @:isVar to FlxButtonPlus x and y so they can be accessed from a derived class. Thanks @ProG4mr
- Temp fix for logging on HTML5 / disable htmlText. Thanks @Gama11
- Moved all color constants to FlxColor util and totally removed them from FlxG. Thanks @Gama11
- Improved nape classes documentation. Thanks @Gama11
- Added forceComplexRender property for FlxObject on flash target. It forces to use BitmapData's draw() method for rendering (smoother, but slower)
- Added onComplete callback for FlxSound. Works on flash and desktop
- Fixed for PxBitmapFont's loadPixelizer() on html5. Now it should render without artifacts
- Added FlxG.quickWatch() and renamed FlxString.formatHash() to FlxString.formatStringMap(). Thanks @Gama11
- Added loadFromSprite() method for FlxSprite
- Added support for animated sprites in FlxTrail
- Added functions to hide, show and toggle the debugger to FlxG. Thanks @Gama11
- Slightly better texture atlas handling. Now you can easily add support for new atlas format
- Fixed tilesheet rendering (for latest openfl release)
- openfl compatibility
- Removed isColored() method from FlxCamera, since Sprite's colorTransform is working properly with drawTiles() now
- Added XBox controller button definitions for Mac (took from HaxePunk)
- FlxPath enhancement, it has pathAutoCenter property now (true by default) and setPathNode() method for direct change of current path node. Thanks @Gama11
- Little fixes regarding new compiler conditionals and mouse input
- Performance optimization: merged preUpdate(), update() and postUpdate() methods. So you should call super.update(); from your classes.
- A little bit better TexturePacker format support for FlxSprite
- Added missing button definitions for XBox controller to FlxJoystick. Thanks @volvis
- Bitmap filters for FlxSprite and FlxText now works on native targets. Thanks @ProG4mr
- Added experimental update thread. Thanks @crazysam
- Fixed FlxTilemap for multiple map loading. Thanks @SeanHogan
- Added FlxAssets.addBitmapDataToCache() method for more control over image caching
- Added drawCircle() function to FlxSprite. Thanks @Gama11
- Added method for updating tilemap buffers, useful for camera resizing. Thanks @impaler
- FlxEmitter Improvements: added scaling, fading and coloring. Thanks @Gama11 for the idea and help
- Added powerful Console to FlxDebugger. Thanks @Gama11
- Improved logging and variable watching functionality. Thanks @Gama11
- Added move function to FlxObject. Thanks @sergey-miryanov
- Fixed FlxTilemap's arrayToCSV() method on neko target. Thanks @pentaphobe
- Added optional right and middle mouse button support. Use FLX_MOUSE_ADVANCED compiler conditional. Thanks @Gama11
- Added FlxColorUtils class. Thanks @Gama11
- Added new compiler conditionals: FLX_NO_FOCUS_LOST_SCREEN and FLX_NO_SOUND_TRAY compiler conditionals. See template.nmml file for details. Thanks @Gama11
- Fix for FlxSprite.fill() on cpp targets
- Now you can pass BitmapData to FlxTilemap's loadMap() method
- Added Nape support (thanks @ProG4mr). See org.flixel.nape package
- FlxText can be static (i.e. non-changable) now. This can be useful for cpp targets
- FlxCamera improvements: lerp, lead and following (thanks @ProG4mr)
- Refactored input system (thanks @impaler). Added new compiler conditionals for switching off unnecessary inputs - see template nmml-file.
- Tilesheet rendering for html5 target (it is much faster than blitting)
- Added new compiler conditionals for switching off debugger and recording systems - see template nmml-file (thanks @impaler)
- Improved Joystick support (thanks @crazysam)
- Added FlxTypedGroup - much less casting in the engine's code. Plus you can use it too
- Updated getters/setters (for Haxe 3 compatibility)
- Replaced Math.floor() with Std.int where it was possible
- Fix for FlxSprite's porting (now it works correctly)
- Added filters functionality for FlxSprite (thanks @ProG4mr). Works on flash target
- Fix for FlxBar - now they rotate correctly
- Initial support of TexturePacker format - see org.flixel.plugin.texturepacker (thanks @sergey-miryanov)
- Refactored drawing methods - now they are more readable and compact (thanks @sergey-miryanov)
- Initial SubState support (thanks @IQAndreas for his AS3 code)
- MouseInteractionMgr - mouse events for FlxSprite (thanks @ProG4mr)
- Fix for null Params arrays for callbacks in FlxButtonPlus
- Pausing cameras when the game is paused
- Many other little improvements, fixes and optimizations from FlixelCommunity, @impaler, @crazysam, @ProG4mr and others
- New draw stack rendering system for cpp and neko targets (replacement for layer system). It is simpler to use but little bit slower.
- NME 3.5.1 compatible
- Bug fixes for FlxText (shadow problem) and tweening (for oneshot tween)
- FlxTextField class now works on flash target also and can be used as input field, but I've removed multicamera support
- Small optimizations from @crazysam
- Added FlxBackdrop addon class
- Added TaskManager addon (ported from AntHill: https://github.com/AntKarlov/Anthill-Framework)
- Added onFocusLost() and onFocus() methods to FlxState class. These methods will called when app losts and gets focus. Override them in subclasses.
- New layer system for cpp and neko targets. See https://github.com/Beeblerox/HaxeFlixel/wiki/Introduction-in-layer-system-%5BEN%5D
- Fixed draw position round issue for cpp and neko targets. It uses less math methods and more accurate now.
- Added drawTiles() counter in debugger output (on cpp and neko targets).
- Added BACKWARD and PINGPONG tween types. Thanks @devolonter!
- Added cancel() method to FlxTween
- Added initial support for html5 target. But it's very-very slow
- Added NestedSprite addon. It is some sort of display object container, a very limited one, but powerfull enough (it's not in finished state right now but usable).
- Added FlxTrail class (thanks @crazysam)
- Fixed ZoomCamera addon class
- Change FlxEmitter behavior, so it can kill itself when all particles are dead
- Fixed FlxCollision plugin, so all of it's method are working on flash, cpp and neko targets
- Added FlxGamePad and FlxAnalog controls (initial state). Thanks to WingEraser for his Flixel-Android port (I took them from there).
- Lots of small fixes, changes and tweaks (thanks to Samuel Batista aka crazysam and @FlixelCommunity)
- Added FlxKongregate plugin (flash only). Thanks to goldengrave for porting this class.
- Fixed bug with FlxButton's makeGraphic() crashing on cpp and neko targets.
- Fixed bug with VarTween and MultiVarTween on Haxe 2.10
- Fixed bug when FlxGroup's tweens weren't updated
- Added new logo. Huge thanks to Impaler!!!
- Added StarfieldFX class from FlixelPowerTools.
- Fixed bug with animation callback for FlxSprite on cpp target
- Ported FlxButtonPlus class from FlixelPowerTools
- Fixed Android sound issue. Thanks to Adrian K. (@goshki) for testing
- Added FlxSkewedSprite class (see skewedSprite example on github repo). This class isn't optimized for flash target
- Added loadFrom() method for FlxSprite. So you can easily copy graphics from one FlxSprite to another. This is especially useful for cpp target. Thanks to Phoenity for this idea
- Initial support for Haxe 2.10
- Added basic support for multitouch (see FlxG.touchManager and multitouch example on github repo). Flash version requires Flash Player 10.1 now.
- Compile fix for FlxPreloader on mac platform. Thanks to Talii for it.
- Integrated tweening system from HaxePunk (Thank you, Matt Tuttle). All FlxBasic's subclasses have this functionality now. See addTween(), removeTween(), clearTweens() methods of FlxBasic instances and 'org.flixel.tweens' package.
- Added basic support for Joystick input (See FlxG.joystickManager and org.flixel.system.input.Joystick and org.flixel.system.input.JoystickManager classes for details). I need someone to test it.
- Fixed bug with FlxCamera's color property on cpp target. Sorry for it
- Updated rendering system for cpp target so it uses 2d tile transformations now (which means non-uniform scaling is working now)
- FlxBitmapTextField's background property is working on cpp target now
- Replaced FlxDictionary with ObjectHash (for FlxControlHandler plugin)
- Added BTNTileMap class (which can be found in org.flixel.addons package) from http://bullettimeninja.blogspot.com/2012/01/lasers-and-ray-casting.html
- Added ZoomCamera class (also in org.flixel.addons package) from http://bullettimeninja.blogspot.com/2011/09/zoom-camera.html
- Made a little optimization for FlxSprite's onScreen() method for cpp target (not using Math.sqrt() now)
- Added width and height getters/setters for FlxCamera on flash target
- Made small optimizations in rendering for cpp target (the way it pushes and splices draw data)
- Fixed pixelPerfectPointCheck() method from FlxCollision plugin
- Made pixelPerfectCheck() method from FlxCollision plugin work on flash only. It's always returns false on other targets. Sorry:(
- Fixed FlxCamera's bug with changing it's size (width, height and zoom)
- Ported FlxBar class
- Added FlxBitmapTextField class (background property isn't working on cpp for now)
- Added PxButton class which uses FlxBitmapTextField for text rendering
- Replaced Dynamic with appropriate types (where it was possible)
- Improvements in FlxQuadTree and FlxObject (less garbage)
- Changed TileSheet creation process to insert gaps between frames. This should solve 'pixel bleeding' problem
- Finally ported FlxPreloader class
- Fixed issue with FlxTextField class when it wasn't affected by fade() and flash() effects (on cpp and neko targets)
- Improvements in memory consumption for FlxTileBlock and FlxBitmapFont classes
- Updated lib to work with haxe 2.09
- Ported FlxGridOverlay from Flixel-Power-Tools
- Initial haxelib release