- Compatibility with Haxe 4.2.x
FlxTween: addedcancelTweensOf()andcompleteTweensOf()(#2273)FlxSound: added anOnLoadcallback toloadStream()(#2276)FlxState: addedsubStateOpenedandsubStateClosedsignals (#2280)FlxG.cameras: added aDefaultDrawTargetargument toadd()andsetDefaultDrawTarget()(#2296)
FlxTween: fixed an issue with settingstartDelayafter tween creation (#2262)FlxEmitter: fixedmaxSizenot being set toQuantityinmakeParticles()(#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 incrementedIDfor each created instance (#2266)FlxCamera: deprecateddefaultCamerasin favor of default draw targets inFlxG.cameras(#2296)
- improved rendering performance on low-end devices
FlxSplash: addedmuted(defaults totrueon HTML5)FlxBaseKeyList: addedNONE(#2253)FlxKeyManager: addedreleased(#2253)FlxGamepad:FlxText: added support for removing partial ranges inremoveFormat()(#2256)
FlxGamepad: fixedpressednot beingtrueduring the firstjustPressedframe (#2253)FlxKeyManager: fixedanyPressed([ANY])not working (#2253)
- Fixed
Std.is()deprecation warnings with Haxe 4.2
FlxGroup: added support for specifyingcameras(#2232)
FlxButton: fixedmouseButtonshandling (#2246)FlxTilemap: handle negative tile indices for allloadmethods, not just CSV (#2250)FlxVirtualPad: fixed graphic not showing up on HTML5OUYAID: fixed button mappings (#2234)
FlxAnimation: changedframeRateto 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
FlxActionAPI /flixel.input.actions(#1805) FlxGamepadManager: addeddeviceConnectedanddeviceDisconnected(#1805)FlxBitmapText: addedclipRectsupport (#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 previousoffsetbeing 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
FlxSubStatenot 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
FlxTweenTypeenum 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: fixedspaceFromBoundsinspace()not being respected (#1963)FlxSpriteGroup: fixed sprites not showing up again after settingalphato0(#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:
FlxDebuggerconsole: fixed enum completion on non-Flash targets (404c16b3)FlxMouseEventManager:FlxAssetPaths: fixedfilterExtensionsfor files with multiple dots (#2107)FlxDebuggerinteraction tool: fixed custom cursors not showing on native targets (ca52e7a2)FlxDebuggerconsole: 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 topreventDefaultKeyson HTML5FlxSpriteGroup: added acamerasetter override (#2146)
FlxTween: addedcancelChain()(#1988)FlxMatrix: addedtransformX()andtransformY()(dcc66b3)FlxCamera: addedcontainsPoint()(#1964)FlxSubState: addedopenCallback(#2023)FlxSpriteGroup:FlxSoundGroup: addedpause()andresume()(#2043)FlxDebuggerinteraction tool:FlxDebuggerconsole: 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/smootherfunctions (#2080)
FlxAnimation: fixed reversed animations (#1998)FlxRandom: fixedgetObject()not respectingstartIndex(#2009)FlxGroup: fixedremove()withSplice = truenot 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/Ynot being copied incopyFrom()(#2027)haxelib run flixel: fixed the working directory not being passed on (61f2c20)FlxDebuggerinteraction tool:FlxG.html5: fixedplatformdetecting iPhone and iPod as "Mac" (#2052)FlxTilemap: fixed a missing bounds check ingetTileIndexByCoords()(#2024)FlxAnalog: fixed mouse input withoutFLX_NO_TOUCH(#2067)flixel.input: fixedFloatbeing used for tick values (#2071)FlxCamera: fixed object visibility forzoom < 1(#2003)FlxEmitter: fixed issues withlifespan == 0(#2074)
FlxBitmapText: allowed negativelineSpacingvalues (#1984)FlxStringUtil: madegetDomain()more robust (#1993, #1996)FlxG.signals: changedgameResizedto be dispatched after camera resize (#2012)FlxAtlasFrames: allowed passing a parsedDescriptioninfromTexturePackerJson()(#2021)FlxG.watch: optimized expression watch entries (#2004)FlxDebuggerconsole: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: addedplatformandonMobile(#1897)FlxText: added support for multi-character markers inapplyMarkup()(#1908)FlxG: addedonMobile(#1904)FlxPreloader: added HTML5 support (#1846)FlxTweenManagerandFlxTimerManager:FlxPath:FlxG.cameras: addedcameraAdded,cameraRemovedandcameraResizedsignals (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, -NotSolidand -Partial(#1847)FlxTilemap:- Added an HTML5 template to center games horizontally (#1918)
- Added support for
haxelib run flixelas an alias forhaxelib run flixel-tools(#1950)
FlxBitmapText: fixedalphanot working (#1877)FlxEmitter: fixed properties not being ignored if their.activeis 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.toggleKeysandFlxG.vcr.cancelKeysnot working on native (470c8e8)FlxMouse: fixedFlxButtonpresses 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 intoStringon 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 ofactivetotrue(d863892)FlxGitSHA: optimized for compiler completion (f5dca1d)FlxRect: added an optionalresultargument tointersection()(c52b534)FlxG.debugger: addedF2totoggleKeys(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 anOpenSaveDialogargument tostopRecording()(#1726)FlxSound:FlxMouse:addedenabledFlxGamepadInputID: added IDs for analog stick directions (#1746)FlxG.watch: addedaddExpression()andremoveExpression()(#1790)Console:- added
watchandwatchExpressioncommands (#1790) - added
Reflect,Std,StringTools,Sys,TypeandFlxTweento default classes
- added
CompletionHandler: added locals declared withvarto completionWatchEntry:- added a remove button
- added
Floatrounding (toFlxG.debugger.precisiondecimals) - 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_DEBUGforFLX_NO_DEBUG)FlxTileFrames: addedspacingandborderarguments tocombineTileSets()andcombineTileFrames()(#1807)FlxBitmapDataUtil: addedcopyBorderPixels()FlxGame:GameWidthandGameHeightinnew()now use the window size if set to 0 (#1811)FlxPoint: addedscale()(#1811)FlxBar: addednumDivisionsFlxBaseTilemap: addedloadMapFromGraphic()(#1525)FlxAnimation: added the ability to setpauseddirectly (#1538)FlxTilemap: addedantialiasing(#1850)- Added GLSL
shadersupport forFlxSprite,FlxTilemap,FlxBarandFlxBitmapText(#1848) FlxGraphic: added an optionalCacheargument 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] fixedticksholding the current date's timestamp instead of ms since game startFlxCamera: fixed background scaling forzoom < 1on 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()settingmaxVelocityto negative values (#1833)- Fixed compilation with
hscriptPosdefined (#1840) FlxDrawTilesItem: fixednumTilesvalue 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,switchStateandresetGamecommandsFlxArrayUtil: optimizedflatten2DArray()FlxSpriteUtil: changedalphaMask()arguments fromDynamictoFlxGraphicAsset(#1806)FlxG.signals: changedpreUpdateto be dispatched afterFlxG.elapsedis updated (#1836)FlxG.debugger: changeddrawDebugChangedto be dispatched afterdrawDebugis 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 = truenot always working with native cursor APIFlxDebuggermouse handling fixes (#1775):- fixed
FlxMouse'svisibleanduseSystemCursornot 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: fixedfinishCallbackfiring 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 inlinevars to enums: (#998)FlxCamerafollow stylesFlxCamerashake modesFlxTextborder stylesFlxTilemapauto-tiling optionsFlxBarfill directionsFlxG.html5browser types
- Moved
FlxMath,FlxPoint,FlxVector,FlxRect,FlxAngle,FlxVelocityandFlxRandomtoflixel.math - Moved "typed" classes: (#1100)
FlxTypedGroupintoFlxGroup.hxFlxTypedSpriteGroupintoFlxSpriteGroup.hxFlxTypedEmitterintoFlxEmitter.hxFlxTypedButtonintoFlxButton.hx
- The signature of
update()functions was changed toupdate(elapsed:Float). Theelapsedargument should be used instead ofFlxG.elapsed. (#1188)
- Added
flixel.FlxStripwhich supports rendering viadrawTriangles() - Added an experimental rendering method using
drawTriangles()(enabled by definingFLX_RENDER_TRIANGLE, requiresFlxG.renderTileto be true). - The tile renderer now uses
Tilesheet.TILE_RECTinstead ofaddTileRect() - Renderers are now distinguished by
FlxG.renderMethod(FlxG.renderBlit/FlxG.renderTilefor 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
pixelPerfectRenderas a global setting for sprites and tilemaps (#1060) pixelPerfectRendernow defaults tofalsewithFlxG.renderTile(#1065)bounds->minScrollX,maxScrollX,minScrollYandmaxScrollY(nullmeans unbounded) (#1070)setBounds()->setScrollBoundsRect()(#1070)- added
setScrollBounds() - added
targetOffset(#1056) - added
scrollRectsprite which crops the camera's view when the camera is scaled - camera now scales from its center, not its top left corner
followLerpis now a range taking values from 0 to (60 / FlxG.updateFramerate) - the closer to zero the more lerp! (#1220)- added
snapToTarget()(#1477) fade(): fixedFadeIn == truenot working in a fade out callback (#1666)follow(): removed theOffsetargument (#1056)
debugger: fixed a crash when callingaddTrackerProfile()beforetrack()signals:- split
gameResetinto pre/post signals - added
preStateCreate(#1557)
- split
android:preventDefaultBackActionhas been replaced bypreventDefaultKeysinputs: addedresetOnStateSwitch- added
FlxG.addPostProcess()/removePostProcess() - added
resizeWindow() - Added
filtersEnabledandsetFilters()toFlxCameraandFlxGame(#1635) versionnow includes the commit SHA via a build macro
- added
getPosition()andgetHitbox() - split some of
separate()'s functionality intoupdateTouchingFlags(), allowingtouchingto be used without any separate calls (#1555) - added
path(#1712)
- added
graphicLoaded() getScreenXY()->getScreenPosition()- removed the
NewSpriteargument fromclone() - added
clipRect frames->numFrames- added
frameswhich 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 colorTransformis 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 longerinlineso 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. Setdirtyto 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.autoPauseto be false- added
switchTo()(#1676)
FlxAnimation:- added
reversedvar which allows you to play animation backwards - second argument of
play()method isReversednow - added
flipXandflipY(#1670)
- added
FlxAnimationController:curAnimdoes also return animations that have finished now- removed
get() callback: fixed oldframeIndexvalue being passed instead of the current oneadd()now makes a copy of theFramesarray before callingsplice()on it- fixed
finishednot being true during the last animation frame in thecallback - added
Reversedargument inplay()method, which allows you to set animation's playback direction
FlxEmitter:at()->focusOn()on->emitting- emitters and particles now use
FlxColorinstead of separate red, green, and blue values - removed
FlxEmitterExt,FlxEmitternow 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
angularDragandangularAcceleration(#1246)
FlxParticle: (#1174)maxLifespan->lifespan,lifespan->age, percent indicates(age / lifespan)agecounts up (as opposed tolifespan, which counted down)- range properties (
velocityRange,alphaRange) which determine particle behavior after launch - "active" flags (
alphaRange.active,velocityRange.active, etc) whichFlxEmitteruses to control particle behavior
FlxGraphic:- renamed from
CachedGraphicsand moved toflixel.graphics - added
defaultPersist(#1241) - added
fromAssetKey(),fromClass()andfromBitmapData() bitmapis now settable
- renamed from
FlxAtlas:- moved to
flixel.graphics.atlas - added
addNodeWithSpacings() - added
minWidth,maxWidth,minHeightandmaxHeight(the size starts atminand grows up untilmaxas 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
FlxImageFrameframes collection which contains single frame - added
FlxTileFramesframes collection which contains frames for spritesheet, which can be generated from image region or frame (including rotated and trimmed frames) - added
FlxAtlasFramesframes collection instead of various texture atlas loaders (likeSparrowDataandTexturePackerData). It contains various static methods for parsing atlas files - added
FlxFilterFramesframes collection instead ofFlxSpriteFilter(see filters demo)
- added
- Rewrote
PxBitmapFontand 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
flipXandflipY(#1591)
- doesn't store the frame's bitmapatas anymore, so
FlxTypedGroup:FlxTypedSpriteGroup: addediterator()
FlxSwipe:durationnow uses seconds instead of milliseconds (#1272)FlxMouseandFlxTouchnow extend a new common base classFlxPointerinstead ofFlxPoint(#1099)- adds
overlaps()toFlxMouse
- adds
FlxGamepadManager:- better handling of disconnecting and reconnecting gamepads.
getByID()can now returnnull. anyButton()now has astateargumentglobalDeadZonecan now be 0globalDeadZonenow 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,mappingandname - 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,justReleasedandanalog - removed the dpad properties, they are now mapped to buttons
- added a
connectedflag - added
deadZoneMode, circular deadzones are now supported (#1177) anyButton()now has astateargument- added support for WiiMote (#1563) and PS Vita (#1714) controllers
FlxKeyboard:- added
preventDefaultKeysfor HTML5 - added an
abstractenum for key names (FlxG.keys.anyPressed([A, LEFT])is now possible) - the any-functions now take an Array of
FlxKeys instead of Array of Strings (string names are still supported) - removed
FlxKey.NUMPADSLASH(SLASHhas the same keycode)
- added
FlxMouseEventManager:
FlxAngle:FlxMath:bound()andinBounds()now acceptnullas values, meaning "unbounded in that direction" (#1070)wrapValue()->wrap(), replaced theamountargument with a lower bound- changed
MIN_VALUEandMAX_VALUEtoMIN_VALUE_FLOATandMAX_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:FlxRandomfunctions are now member functions, callFlxG.randominstead ofFlxRandom(#1201)- exposed
currentSeedas an external representation ofinternalSeed(#1138) - removed
intRanged()andfloatRanged(),int()andfloat()now provide optional ranges (#1138) - removed
weightedGetObject(),getObject()now has an optionalweightsparameter (#1148) - removed
colorExt(), try usingFlxColorto 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
FlxRandomto 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 singlemaxSpeedargument (instead ofxandy)
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: addedhorizontalAlignandverticalAlignRatioScaleMode#new(): added afillScreenoption- The
FlxCamerasprite is now scaled (instead ofFlxGame)
- Rewrote
FlxBitmapTextFieldand renamed it toFlxBitmapText FlxText:- added an
abstractenum for alignment (text.alignment = CENTER;is now possible) fontnow 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
borderStyleandFlxTextFormaton native - added
stampOnAtlas()method, which stamps text graphic on provided atlas and loads result node's graphic into this text object - retrieving text dimensions (
widthandheight) can now trigger text graphic regeneration (if any changes led to a dimensions change) to report the correct values borderColornow supports alpha values / ARBG colors- fixed
setFormat()resettingalignment(#1629)
- added an
- Moved
FlxTextFieldto flixel-addons
FlxBaseTilemap: addedsetRect()method which allows you to set a rectangular region of tiles to the provided indexFlxTile: addedframevariable 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,alphaandcolor - added
framesproperty, so you can change tilemap's graphic without reloading map loadMap()acceptsFlxGraphic,String,FlxTileFramesorBitmapDataasTileGraphicnowloadMap()has been split intoloadMapFromCSV()andloadMapFromArray()(#1292)- added
loadMapFrom2DArray()(#1292) - added
offsetproperty (#1444) allowCollisionsnow sets theallowCollisionsproperty of each tile- fixed
ray()not detecting a collision with perfectly diagonal start and end points (#1617) findPath(): replacedWideDiagonalargument withDiagonalPolicy(#1659)
- separated rendering and logic, adding
FlxTweencompletecallback parameter in options is now calledonComplete. Its type,CompleteCallback, is now calledTweenCallback. (#1273)- added
onStartandonUpdatecallback parameters in options (#1273) - fixed
active = false;not doing anything duringonComplete()ofLOOPINGorPINGPONGtweens - angle tween sets sprite's angle on start now
- added
then()andwait()for chaining (#1614) - made
start()public (#1692) activeis now only true when in progress
- Motion tweens:
- the original
FlxObject#immovablevalue is now restored after completion
- the original
FlxAnalogandFlxVirtualPadnow have their own atlas to reduce draw callsFlxTypedButton:- now implements
IFlxInput, addingpressed,justPressed,releasedandjustReleased - now uses animations for statuses instead of setting
frameIndexdirectly for more flexibility (removesallowHighlightOnMobile, addsstatusAnimations) - disabling the highlight frame is now tied to
#if FLX_NO_MOUSEinstead of#if mobile labelAlphas[FlxButton.HIGHLIGHT]is now 1 forFLX_NO_MOUSEset_label()now updates the label position- added
maxInputMovement - added
mouseButtonsto control which mouse buttons can trigger the button labelis 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#immovablevalue is now restored after completion activeis now only true when in progress- fixed velocity being set even if the object position matches the current node
- exposed
nodeIndexas a read-only property - removed the
Objectargument 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 forlineStyleare now thickness 1 and color whitefadeIn()andfadeOut()now tweenalphainstead ofcolor- added
drawCurve()(#1263) - removed
FillStyle, the same functionality is now covered byFillColor - moved
screenCenter()toFlxObjectand changed the the arguments from two booleans to theFlxAxesenum (#1541)
FlxTimer:complete->onComplete(#1275)activeis 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 == nullFlxGamepadManager: fixedlastActiveonly 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: fixeddatastill 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