What's new in cocos2d 3.17
Jun 1, 2018
- [HIGHLIGHT] Android: support Android Studio 3.0, NDK 16
- [HIGHLIGHT] iOS: support full screen for iPhone X and uses Storyboard for launch screen
- [HIGHLIGHT] 3rd: upgrade Spine runtime to v3.6.39
- [HIGHLIGHT] 3rd: upgrade GLFW to 3.2.1
- [HIGHLIGHT] CMake support all platforms, and support prebuilt engine libs
- [NEW] Engine: multisampling support
- [NEW] Label: support non-breaking characters
- [NEW] Label: support belarusian language
- [NEW] UI: add blend function for Text
- [NEW] UI: add ScrollView API to stop overall scroll
- [NEW] iOS: add auto hide home indicator for iPhone X
- [NEW] iOS: provides an interface for getting SafeArea
- [NEW] Android: add one more android return button types
- [REFINE] Engine: support reading object.rotation attribute in TMX
- [REFINE] Engine: make the sort behavior is same on 32bit and 64bit
- [REFINE] Engine: static analize fixes
- [REFINE] Engine: improve comments in ccConfig.h, JniHelper.h
- [REFINE] Engine: remove plugin submodule
- [REFINE] Engine: improve StringUtils::format implementation
- [REFINE] Label: don't count spaces at the end of line as part of the line width
- [REFENE] UI: partial cursor support with system font in TextField
- [REFINE] UI: support BMFont in TextField
- [REFINE] UI: improve EditBox on win32 platform
- [REFINE] UI: RichText improvements, get the real height by automatically customize ContentSize, refactor split algorithm
- [REFINE] UI: remove autorelease mark from UIWebViewWrapper and manage memory manually
- [REFINE] Lua: implementation conversion Lua table to ObjC Dictionary
- [REFINE] Lua: improve loader, support standerd Lua package require
- [REFINE] Web: upgrade Spine Javascript runtime to v3.6.39
- [REFINE] Windows: speed up build by supporting precompiled header
- [REFINE] Windows: remove Visual Studio 2013 support
- [REFINE] Windows: Windows 10 update compiler to PlatformToolset v141
- [REFINE] iOS: uses Images.xcassets instead of several icon png files
- [REFINE] Android: support Android Studio 3.0.0, switch to libc++, simplify PROP_* values, add default Proguard Config for cocos
- [REFINE] Android: remove ant project
- [REFINE] Android: update NDK from r14 to r16
- [REFINE] Android: improve Android.mk, not have to set NDK_MODULE_PATH in project settings
- [REFINE] Android: detail comments for cddandroidAndroidJavaEngine.h, Cocos2dxSound.java
- [REFINE] Linux: provide prebuilt version of GLFW
- [REFINE] cocos console: remove ant build support
- [REFINE] cocos console: support building release APK without key information
- [REFINE] 3rd: remove Visual Studio 2013 libs
- [REFINE] 3rd: remove Android armeabi libs since it is deprecated and will be removed in r17
- [REFINE] 3rd: rebuild all Android libs with clang in ndk-r16
- [REFINE] 3rd: cmake build support for partial libs
- [REFENE] 3rd: update Box2D to latest commit f655c603ba9d83
- [REFINE] 3rd: use prebuilt Box2D
- [FIX] Engine: capture image loses quality when using RenderTexture
- [FIX] Engine: RenderTexture DepthAndStencil issue on Android
- [FIX] Engine: race condition resulting in deadlock infrequently in TextureCache
- [FIX] Engine: CCConsole.cpp compile error with C++17 and clang
- [FIX] Engine: TrianglesCommand hashing technique doesn't take padding into account
- [FIX] Engine: default GLView bit depth is too low on desktop
- [FIX] Engine: cocos2d::log va_list re-use bug
- [FIX] Engine: cocos2d::Image::saveImageToPNG saves image in wrong PNG format
- [FIX] Engine: CameraBackgroundColorBrush cannot use alpha
- [FIX] Engine: crash in Allocator if there are no allocated pages
- [FIX] Engine: crash when the UserDefault.xml file is empty
- [FIX] Engine: memory leak in ObjectFactory destroyInstance, UserDefault::deleteValueForKey
- [FIX] Engine: replace ptr_fun with lambda, fix compile error with C++17 and clang
- [FIX] Engine: fix some warning issues
- [FIX] Label: memory leak when using TTF labels
- [FIX] Label: memory leak in FontFreeType::create
- [FIX] Label: Non-TTF Label Shadow issue, make it follow Label opacity
- [FIX] UI: RichText issue caused by Label when its string is very long
- [FIX] UI: EditBox right padding error
- [FIX] UI: win32 EditBox has wrong scale factor
- [FIX] UI: TableView button click event not response when the button is a cell
- [FIX] UI: correct bugs with cursor in TextField
- [FIX] UI: Android EditBox use 'setSelection' error when the text beyond the border
- [FIX] UI: iOS EditBox will penetrate the underlying UI event
- [FIX] UI: use setTextColor for EditBox placeholder
- [FIX] UI: returning UNKNOWN event for return type key SEARCH/SEND in EditBox
- [FIX] UI: crash when call TextFieldTTF::setCursorFromPoint
- [FIX] UI: ListView, avoid of type overflow while list size calculation
- [FIX] Audio: miss return value of onWavClose function
- [FIX] Audio: wrong header include in mp3reader.cpp, apple/AudioEngine-inl.h
- [FIX] Audio: wrong status check in apple/AudioDecoder.mm
- [FIX] Lua: should set listener to null when unregister spine event handler
- [FIX] Lua: event condition bugs on ParticleTest.lua
- [FIX] JSB: some memory leaks and crashes
- [FIX] JSB: miss GetterSetter define for the placeHolder of TextField
- [FIX] Web: out-of-date submodule commmit of cocos2d-html5 repo
- [FIX] Web: bugs for Performance Test for Spine on WebGL
- [FIX] iOS: fix bug about delayed creation UIWebView on iOS
- [FIX] Andorid: infinite loop when counting text lines on Android in some situations
- [FIX] Android: crash when network error message is too long
- [FIX] Android: JniHelper no longer thread safe
- [FIX] Android: proguard-rules.pro error for tests project
- [FIX] Andorid: some violations about I/O operation on UI thread, which may lead to ANR
- [FIX] Android: AppAcitivity is recreated which causes crash
- [FIX] Android: Emulator blank screen 0x501 and 0x502 problems
- [FIX] Android: Emulator stencil fix
- [FIX] Android: Fix endian detection (node render order)
- [FIX] Android: issue with not stable 60 fps
- [FIX] Android: issue with accelerometer on Android on reverse landscape/portrait
- [FIX] WinRT: fix keyBoard bug when input chinese
- [FIX] cocos console: fix archive issue with Xcode 9
New in cocos2d 3.16 (Oct 9, 2017)
- [NEW] Add RadialGradientLayer
- [NEW] Web: Add GLProgramState and upgrade web shader usage APIs
- [REFINE] 3rd: use prebuilt bullet
- [REFINE] CameraBackgroundBrush: use VAO/VBO to improve performance
- [REFINE] Color4F: add arithmentic operators
- [REFINE] LayerMultiplex: add `LayerMultiplex::switch(int, bool)` to not clean up previous layer after switching to a new layer
- [REFINE] ListView: add padding options
- [REFINE] FileUtils: add more async functions
- [REFINE] ImageView: add `ImageView::setBlendFunc()` to change blend function
- [REFINE] PageView: allow customizing opacity of indicator nodes
- [REFINE] ParticleSystem: add `ParticleSystem::setSourcePositionCompatible(bool)` to set source position instead of position
- [REFINE] RichText: image tag supports sprite frame
- [REFINE] RichText: support horizontal alignment
- [REFINE] ScrollView: add `ScrollView::setSwallowTouches(bool)`
- [REFINE] ScrollView: dispatch more useful events and add more getters
- [REFINE] Spine: support ETC1
- [REFINE] WebView: can set opacity
- [REFINE] Android: update to support Android Studio 2.3.3
- [REFINE] Android: add `Cocos2dxActivity.setEnableVirtualButton(boolean)` to control whether the hide virtual button or not
- [REFINE] iOS: more stable delta time between frames
- [REFINE] Engine: fix many warning issues
- [REFINE] Engine: exclude fps image in release mode
- [REFINE] Engine: add function for calculating md5 hash from Data
- [REFINE] Windows 10 metro mode, Windows Phone and Tizen are not supported
- [REFINE] Web: Text wrapping supports more languages
- [REFINE] Web: upgrade Spine to v3.5.35 and support Spine skeleton batching
- [REFINE] Web: improve Editbox user experience
- [REFINE] Web: improve screen adaptation for games inside iframe
- [REFINE] Web: use imagePool to reduce image cache memory usage in WebGL mode
- [REFINE] Web: ParticleSystem: Mark changeColor only if needed
- [REFINE] Web: use default scheduler to control action manager
- [REFINE] Web: remove accelerometer event listener by default
- [REFINE] Web: use arraybuffer responseType in BinaryLoader
- [FIX] Application: openURL() can not open URLs that have `&` character on linux
- [FIX] Audio: may crash if play, stop frequently on Mac/Android
- [FIX] Audio: may crash if switch to background with effect playing and switch to foreground again on Android
- [FIX] Audio: may freeze app on iOS/Mac
- [FIX] Audio: may crash if have multiple audio tracks running at the same time and frequently call `_play2d(AudioCache *cache, int audioID)` on iOS/Mac
- [FIX] Audio: can not mute audio while a ring or a call is comming on Android
- [FIX] Audio: audio loops get evently cut
- [FIX] Button: scale9 effect may wrong
- [FIX] Director: will dispatch `EVENT_BEFORE_DRAW` before drawing a frame
- [FIX] Downloader: task may be suspend and not been executed on Android
- [FIX] Downloader: may crash if downloading large file on iOS/Mac
- [FIX] EditBox: may not show cursor and input text on Android
- [FIX] EditBox: may not show any character when type on keyboard on Android
- [FIX] EditBox: fix spacing and alignment on Windows
- [FIX] EditBox: text is larger and mis-aligned on Android
- [FIX] EventDispatcher: `pauseEventListenersForTarget()` can not work correctly if invoked in event callback
- [FIX] FileUtils: `listFiles` and `listFilesRecursively` can not work correctly if the path include unicode charater on Windows
- [FIX] FileUtils: getFileSize() always return -1 on Android
- [FIX] FontAtlas: may cause crash when back from background on Android
- [FIX] FontAtlas: memory leak in `FontAtlas::prepareLetterDefinitions()`
- [FIX] HttpClient: may cause crash if used in non network environment on Android
- [FIX] ImageView: scale9 effect may wrong
- [FIX] Label: line height is reset when call `FontAtlasCache::purgeCachedData()`
- [FIX] Label: memory leak in `Label::setFontAtlas()`
- [FIX] Label: wrong effect of shrink overflow clamp on iOS
- [FIX] Physics: crash if calling `PhysicsWorld::setDebugDrawMask(false)` right after `Scene::initWithPhysics()`
- [FIX] Scheduler: can not work correctly if reschedule with same key in callback
- [FIX] Sprite: `Sprite::setTexture()` will reset program state
- [FIX] Studio: revert Studio reader and flatbuffer
- [FIX] TextField: crash when text exceeds content with enabled cursor
- [FIX] Transition: TransitionCrossFade is darker than it should
- [FIX] Widget: wrong layout in scaled widget
- [FIX] Android: app will crash at the first time launching by clicking app icon
- [FIX] Android: compiling error built with Android Studio for x86
- [FIX] Android: can not creat EGL context if the device doesn't support 24bit depth buffer
- [FIX] Android: may stop response to touch event
- [FIX] Android: can not use previous OBB file when APK version changed
- [FIX] iOS: can not use cocos console compile and run in release mode on iOS with Xcode 8.3+
- [FIX] iOS: FileUtils will cause compiling error on iOS 11
- [FIX] Desktop: `GLViewImpl::getMonitorSize()` may return zero
- [FIX] Apple: may crash if there are more than 10 touches
- [FIX] JSB: add chipmunk binding for `cpSpace::segmentQuery()`
- [FIX] JSB: XMLHTTPRequest memory leak if CC_ENABLE_GC_FOR_NATIVE_OBJECTS is enabled
- [FIX] JSB: WebView doesn't support https
- [FIX] Lua: export `cocos2d::utils::findChild()`
- [FIX] Lua: LuaObjcBridge return wrong type when return type is bool
- [FIX] Lua: will crash if lua file is encrypted and it has BOM header
- [FIX] Lua: iskindof() return wrong result
- [FIX] Lua: crash if run on iOS simulator with Xcode 8.0+
- [FIX] Web: memory leak in action manager
- [FIX] Web: local resources loading failed
- [FIX] Web: infinite call stack in ArmatureWebGLRenderCmd
- [FIX] Web: label stroke effect
- [FIX] Web: ProgressTimer vertex is not updated when changing transform
- [FIX] Web: DrawNode canvas displayedOpacity rendering
New in cocos2d 3.15 (Apr 28, 2017)
- [NEW] Full support of Android Studio, can use Android Studio to edit, compile and debug C++ codes
- [NEW] Audio Engine: use `tremolo` to decode audio files to be more adaptable to Android devices and improve performance on Android
- [NEW] WebSockets and SocketIO supports SSL
- [NEW] WebSockets: add methods to get url and server selected protocol
- [NEW] Add `utils::getFileMD5Hash()`
- [REFINE] EventDispatcher: use `std::stable_sort()` to sort nodes and listeners
- [REFINE] FileUtils: add async version of common methods
- [REFINE] Label: full unicode support
- [REFINE] Renderer: enable VAO by default on Android
- [REFINE] Renderer: use std::stable_sort() to sort commands
- [REFINE] Scheduler: `unscheduleAll()` will unschedule selectors that scheduled with `performFunctionInCocosThread()`
- [REFINE] SpriteFrameCache: avoid load frames if they are already loaded
- [REFENE] Texfield: not use auto correction on iOS now
- [REFINE] TextureCache: allow to unbind asynchronous texture loading callback with a custom key
- [REFINE] WebSockets: each connection will create a virtual host
- [REFINE] WebView: can clean cached data
- [REFINE] WebSockets: allow self-assign certification
- [REFINE] 3rd: update OpenSSL to v1.1.0
- [REFINE] 3rd: update flatbuffer to v1.5
- [REFINE] 3rd: Update Spine runtime to v3.5.35
- [REFINE] Remove support for Windows 8.1 store and phone
- [REFINE] Remove 32-bit linux support
- [FIX] Action: spawn action may be invoked more times than specified
- [FIX] Audio engine: can not play audios in the callback set in `AudioEngine::setFinishedCallback()` on iOS, Mac and win32
- [FIX] Audio engine: crash if uncache audios in finish callback on Android
- [FIX] Audio engine: crash if playing very small mp3 audios on Android
- [FIX] Audio engine: may crash if repeat doing `play -> stop` on iOS and Mac
- [FIX] Audio engine: play2d may still wait 2 seconds if preload is too fast
- [FIX] Audio engine: preload many audios may cause crash on devices that use Samsung Exynos CPU
- [FIX] Application: `openURL()` return wrong valueo on Linux
- [FIX] Core: out scene's `onEnterTransitionDidFinish` is not triggered if using transition scene with `Director::runWithScene()`
- [FIX] CheckBox: can receive touch up event that is released far from it
- [FIX] Downloader: is not thread safe and may cause rondom crash on Android
- [FIX] DrawNode: can't change opacity
- [FIX] GLProgram: memory leak
- [FIX] HttpClient: may crash on Android 4.2
- [FIX] Label: ttf font line wrap
- [FIX] Label: wrong effect if ttf font line gap is not 0
- [FIX] Label: memory leak with ttf font
- [FIX] Label: call `disableEffect()` many times will compress the label to one character
- [FIX] Mesh: enable depth write by default
- [FIX] Node: calling `reorderChild()` does not update touch lister with scene graph priority
- [FIX] PageView: `getCurrentPageIndex()` returns -1 when created and haven't scrolled
- [FIX] Physics2d: can not apply velocity to kinematic bodies
- [FIX] Scheduler: an unscheduled selector may be invoked many times
- [FIX] Scheduler: selector is not moved in time
- [FIX] Simple Audio Engine: `unloadEffect()` doesn't work on Android 5.0.1 devices
- [FIX] Simple Audio Engine: `ConcurrentModificationException`
- [FIX] SokcetIO: use wrong default port for connection
- [FIX] Sprite: texture and shader lost after restore from background on Android if using ETC1
- [FIX] WebSockets: memory leak
- [FIX] WebSockets: doesn't parse url correctly
- [FIX] WebSockets: may crash in random
- [FIX] Vec4: error logic of operator '
New in cocos2d 3.7.1 (Aug 12, 2015)
- HIGHLIGHT: studio: Added new skeleton animation support and csb parser for cocos v2.3.2 beta
- HIGHLIGHT: studio: Added new skeleton animation support and JSON parser in the web engine
- HIGHLIGHT: studio: Added Skybox csb/JSON parser for cocos v2.3.2 beta
- NEW: Node: Added getNodeToParentTransform with selected ancestor
- NEW: studio: Parsed Touch/Click/Event callback in JSON parser
- NEW: web: Added cc.director.setClearColor and support transparent background
- REFINE: Widget: Synchronize enable state and bright state for Widget
- REFINE: studio: Optimized JSON parser's performance by removing audio play
- REFINE: studio: Optimized editor related extension data to a component instead of hosting in _userObject
- REFINE: studio: Updated Game3DNodeReader & UserCameraReader
- REFINE: Label: Remove file error notice label from TextBMFontReader
- REFINE: JSB: Add firefox remote debugger support in JS templates
- REFINE: web: Improved color/opacity manipulations in MenuItems
- FIX: Scene: Fixed Scene can't be inherited with std::vector members
- FIX: Sprite: Fixed a compile error when CC_SPRITE_DEBUG_DRAW is on
- FIX: Label: Fixed creation fail if the font(TTF) contains a non-unicode charmap
- FIX: Label: Fixed LabelAtlas rendering error for invalid characters and characters out of boundaries
- FIX: Label: Fixed Mac system font crash issue
- FIX: platform: Fixed building with system prebuilt libs on Linux
- FIX: studio: Fixed ccs.Skin construction issue in JSON parser
- FIX: studio: Fixed Particle3d crash while reading file with error
- FIX: studio: Fixed parser crash when sprite 3d resource isn't correct
- FIX: UI: Fixed CheckBox issue that _isSelected state is updated after event processing callbacks
- FIX: JSB: Fixed JSON parser issue that 3d particle can not be displayed
- FIX: web: Fixed an issue that loading process won't trigger callback problem
- FIX: web: Fixed a bug where not resetting cc.Audio._ignoreEnded when replaying a sound caused it to stay in a "playing" state
- FIX: web: cc.ScrollView and cc.TableView: added check for parent visibility in onTouchBegan method
- FIX: web: Fixed TurnPageDown effect
- FIX: web: Fixed Cocos Studio parser issue that all elements are missing while the timeline action contains rotation
New in cocos2d 3.6 (May 1, 2015)
- [NEW]: 3rd: update chipmunk to v 6.2.2 on Windows 8.1 Universal App
- [NEW]: 3rd: update freetype to v 2.5.5 on Windows 8.1 Universal App
- [NEW]: C++: Added SpritePolygon
- [NEW]: Label: added LabelEffect::ALL which can be used in disableEffect(LabelEffect) to disable all effects
- [NEW]: Lua-binding: binded ui:WebView and added corresponidng test case
- [NEW]: MathUtil: added `MathUtil::lerp()`
- [NEW]: UserDefault: added `UserDefault::setDelegate()`
- [NEW]: Vec2: added `Vec2::setZero()`
- [NEW]: Vec3: added `Vec3::lerp()`
- [NEW]: WP8: remove WP8 support because Angle don't support WP8 any more
- [NEW]: WP8.1: added back button support
- [FIX]: Animate3D: modify `Animate3D::setHighQuality()` Animate3D::setQuality(), add a new animation quality type none which means that will not update animation to the bone, it is useful when the Sprite3D is out of the screen, it can safe a lot of cpu time.
- [FIX]: AnimationCurve: memory leak
- [FIX]: Bundle3D: memory leak when failed to load file
- [FIX]: HttpClient: memory leak on iOS
- [FIX]: JNI: JNI illegal start byte error which causes crashing error on Android 5.0
- [FIX]: PUParticleSystem3D: refactoring create function using initWithXXX
- [FIX]: UI:VideoPlayer: crashed when playing streamed MP4 file on iOS
- [FIX]: VideoPlayer: can not play videos on Android v2.3.x
New in cocos2d 1.0.1 (Jul 29, 2011)
- Implicit atomic properties converted to nonatomic
- Removed deprected code
- CCArray: copyWithZone fixed
- Director: frames -> totalFrames, and it works as expected. Value is not being reset.
- Menu: If any ancestor is invisible, then touches won't be accepted
- Node: vertexZ returns points, not "pixels"
- LabelTTF: don't crash when calling description after dealloc
- Tests: [window release] instead of [window dealloc]
- Texture: TextureCache#dump reports the right info (issue #1205)
- CocosDenshion: Cleanup buffers to prevent noise
New in cocos2d 1.0.0 (Jul 15, 2011)
- ccpSegmentIntersect & ccpPointIntersect: Added helper functions for ccpLineIntersect (issue #1193)
- ccConfig: Added possibility to define the configuration as preprocessor macros
- Director: frames is a readonly property
- Menu: MenuItemFont can change size and font from instance Scheduler: Added isTargetPaused method
- Sprite: Debugging draw for texture
- Textures: PVR supports NPOT textures
- CCArray: ForEach prepends "__" to inner variables to prevent conflict
- ccpLineIntersect works as expected. Improved performance (issue #1174, #1193)
- cocosLive: fixed memory leak in ScoreServerPost
- Director: Added asserts to prevent calling startAnimation twice.
- EAGLView: Fixed leak when using multisampling and resizing the layer (issue #1198)
- Menu: Column aligment is centered. Removed the +10 pixels padding.
- Node: Node#Draw calls super#draw
- Tests: Fixed memory leak in ParticleTest
- Tests: Fixed memory leak in cocosLiveTest
- Tiles: Worked around memory leak in NSXMLParser (issue #1197)
- TouchDispatcher: added setPriority (issue #757)
- Xcode: cocos2d compiles OK with Xcode 4.2 + llvm 3.0
- Chipmunk: updated to v5.3.5
New in cocos2d 1.0.0 rc3 (Jun 1, 2011)
- Actions: Added SkewTo and SkewBy actions
- LabelTTF: Added support for LineBreakMode. Mac only supports Word-Break.
- Node / Sprite: Added support for SkewX and SkewY properties
- Tests: Added skewX, skewY tests for sprites and actions. Added linebreak tests for LabelTTF.
- TextureCache: Added dumpCachedTextureInfo method. Shows the RAM used by the cached textures (issue #1154)
- cocosLive: Fixed memory leaks in NSURLConnection
- Sprites: DisplayedFrame returns the correct frame (issue #1182)
- Templates: Supports spaces in project name (issue #1158)
- TextureCache: Textures are autoreleased to prevent a crash in multi-threading environments
- TexturePVR: clean glError() before creating textures
- TMX Maps: Consume less memory (only what is needed), faster loading times (issue #1175)
- Tests: Added test case for issue #1071
- Director: Doesn't crash when entering fullscreen if window is not Key (issue #1185)
New in cocos2d 1.0.0 Beta (Mar 2, 2011)
- Actions: Repeat and RepeatForEver has getter/setter for the inner action (issue #1110)
- LayerGradient: Added "compressed interpolation" (default mode) in order to display all graident's colors in any vector
- Added CC_DIRECTOR_INIT(). It is possible to create a Mac Window programatically
- EventDispatcher: Added support for touches events
- CocosDenshion: Improved logging
- CocosDenshion: Fixed excessively large or negative gain values cause distorted audio in the simulator.
- CocosDenshion: Added guards to prevent memory corruption caused by invalid parameters
- CocosDenshion: Define some constants for defaults, make const parameter on buffer asynch load method
- CCArray: insertObjectAtIndex checks bounds (issue #1121)
- Director: Fixed possible crash when purging the TextureCache
- Layer: Deprecated. CCMultiplexLayer deprecated. New name is CCLayerMultiplex
- Particles: consumes less memory (12 bytes less per particle) and are a bit faster
- ProgressTimer: Consumes less memory
- RenderTexture: Added possibility to save buffer in any place (issue #1100)
- RenderTexture: re-added getUIImageFromBuffer method. Supports RetinaDisplay
- Sprite: flipx/flipy don't modify the contentSize (issue #1073)
- SpriteFrame: setRect sets pixels too. setRectInPixels sets points too (issue #1088)
- Templates: ItunesArtwork renamed to iTunesArtwork (issue #1092)
- Templates: HelloWorld -> HelloWorldLayer and other improvements (issue #873)
- TextureCache: asyncObject#dealloc uses CCLOGINFO instead of CCLOG (issue #1096)
- TiledMap: TMX maps work with zlib compression (Tiled v0.6)
- Director: runLoop enables NSTimers events (issue #1107)
- EventDispatcher: flagsChanged is triggered correctly (issue #1066)
- EventDispatcher: queue & dispatch events are synced (issue #1083)
- LabelTTF: alignment works OK (issue #1073)
- Menu: Menu doesn't hang up with invisible menus (issue #1070)
- Menu: Tracking "touches" works as expected (issue #1114)
- Templates includes AudioToolbox and OpenAL frameworks
New in cocos2d 0.4.0 (Sep 9, 2010)
- Fixed compatibility Python 2.4
New in cocos2d 0.4 rc0 (Jul 8, 2010)
- Actions subsystem upgraded: now Actions with duration not know in advance are possible, like the ones that terminates on a collision detection condition.
- Also new Move/BoundedMove/WrappedMove actions for kinematic animation controls
- ScrollableLayer and ScrollingManager moved to cocos.layer from cocos.tiles and usable in non-tiled games cocos.tiles.RectMapCollider provides a skeleton for handling collisions
- Between sprites and rectangular tile maps recorder: video record your app as a series of .png files, at a desired framerate
- Axis aligned bounding box (AABB) for sprites skeleton animation support, also an editor for the animations optional experimental SDL audio support
- More minisamples in the test directories
- Many bugfixes
New in cocos2d 0.3.1 (Apr 23, 2010)
- ScrollableLayer and ScrollingManager moved to cocos.layer from cocos.tiles and
- usable in non-tiled games.
- ccoos.tiles.RectMapCollider provides a skeleton for handling collisions between sprites and rectangular tile maps.
- Many bugfixes
New in cocos2d 0.3.0 (Nov 5, 2008)
- Added particle systems: Sun, Fire, Fireworks, Meteor, Galaxy, Flower, Exposion, Spiral
- Added lerp actions
- Applied patch by naveen.michaudagrawal
- Applied patch by Kao Cardoso Félix
- Applied patch by JeanpierreDA
- Fixed Camera "once" locate bug
- Many bugfixes
- Primitive vector based line drawing.
- Tile-map editor