- added 'readjustSize:' method to SPImage
- added 'fontName' parameter in 'registerBitmapFont' methods (thanks, tconkling!)
- added iOS 5 rotation code (thanks, Brian!)
- added support for iOS 6 in demo, scaffold, and barebone projects
- added support for fractions of SP_NATIVE_FONT_SIZE (e.g. *2, *0.5) for Bitmap Fonts
- removed override of default architecture for Xcode 4.5 compatibility (thanks, theyonibomber!)
- optimized 'containsChild:' method
- optimized matrix rotation method
- optimized 'removeChildAtIndex:' method (removed obsolete retain/release calls)
- optimized transformation matrix calculations (matrix is now cached)
- fixed leftover touches when app moves in background; existing touches are now canceled
- fixed several warnings that popped up in iOS 6 SDK
- fixed texture lookup: when 4x is requested but not available, 2x is tried before 1x
- fixed exception when bitmap text contained two (or more) line feeds
- fixed error caused by removal of sibling in REMOVED_FROM_STAGE event
- fixed letterbox code of scaffold so that it works on the retina iPad
- fixed hashing problems by renaming 'isEqual' to 'isEquivalent' in matrix, point, and rectangle classes
- added support for ARC (automatic reference counting)
- added support for device modifiers ('~iphone', '~ipad') in image filenames
- added support for device modifiers in 'scale_textures.rb' script
- added comprehensive new scaffold project featuring
- auto rotation of Sparrow content
- auto rotation of UIKit overlay (for iAds, etc.)
- very simple support for universal applications
- added 'BareBone' project, which replaces the old app scaffold
- added support for new PVR texture types: I8, A8, AI88, RGB888
- added 'sortChildren' method to SPDisplayObjectContainer
- added 'currentTime' property to SPTween
- added 'fadeTo' method to SPTween
- added 'SP_EVENT_TYPE_COMPILE', dispatched on children when a sprite is compiled
- added 'broadcastEvent' method to SPDisplayObject
- added 'setIndex:ofChild:' method to SPDisplayObjectContainer
- added 'SP_SWAP' macro
- added 'SP_CLAMP' macro
- added check for invalid display tree recursion (adding a parent as a child)
- added more utility methods to point, rectangle and matrix classes
- added 'stop' method to SPMovieClip
- updated license to require 'powered by Sparrow' information
- updated graphics of demo project with new bird style
- fixed object pooling for iOS 5
- fixed HD texture loading when SD texture is missing
- fixed tweening integers to a negative value
- fixed support of texture frames in bitmap fonts
- fixed bounds method of empty sprite
- fixed warnings that appeared in LLVM compiler
- fixed 'isPlaying' property of movie clip
- added pivotX- and pivotY-property to SPDisplayObject to allow manipulation of the origin point
- added support for GZip'ed PVR textures
- added support for texture frames aka trimmed textures
- added kerning to bitmap fonts (if the font file contains kerning information)
- added [SPStage mainStage] method for quick access to the stage
- added ability to choose between nearest neighbor, bilinear and trilinear texture filtering
- added 'moveToX:y' and 'scaleTo:' methods to SPTween
- added support for RGBA8888 texture format
- added support for tweening unsigned integers
- added events on each loop of an SPMovieClip
- added support for directories when loading resource files; in iOS 3.x, that did not work before.
- added color property to stage
- added [NSBundle appBundle] extension method. This method is now used throughout the framework instead of [NSBundle mainBundle]. That way, unit tests will find their resource files, too.
- updated button to behave just like a textfield: the text does not stretch any longer when width or height are changed
- updated projects for Xcode4
- updated xml parsing to work around memory leak
- fixed bounds-optimization of SPQuad, which might have failed in subclasses
- fixed path handling of bitmap font and atlas classes
- fixed that HD textures were only found within application bundle
- fixed texture binding problems of SPRenderTexture
- fixed generate_atlas.rb script to work with Ruby 1.9
- fixed looping behavior of tween and movie clip
- fixed wrong scale setting when loading bitmap font with custom texture
- fixed bug that caused Sparrow to treat new touch as if it was an existing one
- fixed name of random number method because of conflicting keyword 'and'
- fixed clearWithColor method
- Special thanks to
- Shilo White for the Pivot Point
- Ludometrics for Bitmap Font kerning
- Tadas Vilkeliskis for tweening of unsigned integers
- Jonathan Shieh for his fix that allows unit tests to load files
- Andreas Wålm for making generate_atlas.rb work with ruby 1.9
- numerous forum members for bug reports, suggestions and feedback!
- added SPRenderTexture
- added SPUtils class for easy random number generation (more to come)
- added support for looping and reversing tweens (thanks, Shilo!)
- added new transition method: 'randomize'
- added support for uncompressed PVR texture formats (565, 5551, 4444)
- added simple way to use HD textures on the iPad
- added support for creating dynamic texture atlases (add/remove regions on the fly)
- added methods to access the glyphs of SPBitmapFont directly
- added new init method to SPImage: 'initWithContentsOfImage:(UIImage *)image'
- added more factory methods to different classes
- added support for changing the fps of SPMovieClip at runtime (thanks Shilo!)
- added AppleDoc inline API documentation
- added bash script that generates API documentation
- updated SPView class to be more robust
- updated general rendering code (moved more OpenGL calls to SPRenderTexture)
- fixed bug with canceled touch events
- fixed bug that could cause a breakdown of the touch handling (thanks Kodi!)
- fixed 'isEqual' method of SPMatrix (thanks Matt!)
- fixed bug that could cut the outermost pixels of HD textures
- Special thanks to numerous forum members for bug reports, suggestions and feedback!
- added support for PVRTC-textures
- added new init method to SPTexture to allow simple use of Core Graphics drawings
- added new init method to SPMovieClip that uses an NSArray containing the frames
- added method 'childByName:' to SPDisplayObjectContainer
- added method 'texturesStartingWith:' to SPTextureAtlas
- added method 'scaleBy:' to SPPoint
- added method 'interpolateFromPoint:toPoint:ratio:' to SPPoint
- added property 'textBounds' to SPTextField
- added property 'name' to SPDisplayObject
- added workaround for unit test problem in Xcode 3.2.4
- updated SPCompiledSprite-class to be public
- updated texture utilities for sharper output
- updated scaffold so that it is easier to create an iPad application
- fixed bug that classes inheriting directly from SPQuad were not rendered
- fixed that last-moment changes were not displayed when pausing stage
- fixed bug that could lead to a white flash when textures were released
- Special thanks to numerous forum members for bug reports, suggestions and feedback!
- !!! interface change !!! The IDs of vertices in SPQuad and SPImage have changed. ("colorOfVertex:", "texCoordsOfVertex:") Before: 0 = top left, 1 = top right, 2 = bottom right, 3 = bottom left AFTER: 0 = top left, 1 = top right, 2 = bottom left, 3 = bottom right
- greatly improved rendering speed of SPTextField when used with bitmap fonts
- greatly improved performance of touch event analysis
- added Sparrow atlas generator (sparrow/util/atlas_generator)
- added Sparrow texture resizer (sparrow/util/texture_scaler)
- added support for high resolution screens (aka iPhone4's retina display)
- added support for high resolution textures ("[email protected]")
- added support for high resolution texture atlases ("[email protected]")
- added support for high resolution bitmap fonts ("[email protected]")
- added support for loading textures that are not inside the application bundle
- added support for loading sounds that are not inside the application bundle
- changed base SDK to iOS 4.0
- added new event: SP_EVENT_TYPE_MOVIE_COMPLETED in SPMovieClip class
- added experimental feature: SPCompiledSprite
- added some missing "@private" declarations
- fixed memory access violation when object was destroyed within an enter frame event listener
- fixed bug that alpha values were only used when a texture was active
- fixed bug that SPDelayedInvocation (aka SPJuggler::delayInvocationAtTarget) did not retain its arguments
- fixed bug that cancelled touch events would inhibit further user input
- code cleanup (especially concerning designated initializers)
- Special thanks to: Mike, Baike, Paolo, Jule and Alex_H for bug reports, suggestions and feedback!
- added audio classes
- added SPMovieClip class
- added new transition functions:
- easeInBack / easeOutBack / easeInOutBack / easeOutInBack
- easeInElastic / easeOutElastic / easeInOutElastic / easeOutInElastic
- easeInBounce / easeOutBounce / easeInOutBounce / easeOutInBounce
- added 'removeTweensWithTarget:'-method to juggler
- added 'removeAllChildren'-method to SPDisplayObjectContainer
- added new text-only constructor to SPTextField
- added NSXMLParserDelegate protocol statement for iPhone SDK 4+
- added packer2sparrow utility
- added hiero2sparrow utility
- changed transition function signature (removed delta)
- changed rotation handling: angles now clamped from -180 to +180 degrees. this should make most rotation tweens more intuitive.
- changed license text to allow easy AppStore distribution
- changed scaffold project to support audio
- changed demo project
- new design
- new scene: sound
- new scene: movie
- fixed touch issues when view size != stage size
- fixed exception that occurred when the same object was added to a container twice
- fixed flickering at application start
- fixed method signatures in SPTexture.m
- 'removeChild'-method in SPDisplayObjectContainer no longer throws an exception when the object is not a child, but now silently ignores the failure.
- the stage property is now accessible in the REMOVED_FROM_STAGE event
- disabled unit test execution in iPhone SDK < 3 (unit tests are only supported by iPhone SDK 3+)
- first public version